|
|
|
|
Példaprogram letöltése
7571 bájt
|
Ebből a cikkből megtudhatjuk, hogy hogyan lehet programból közvetlenül fájlba nyomtatni. Fény derül továbbá arra is, hogy az így létrejött állományt miként használhatjuk fel, vagyis miként nyomtathatjuk ki.
Néha bizony előfordul, hogy a nyomtatni kívánt dokumentumot nem azonnal a nyomtatóra szeretnénk küldeni, hanem mondjuk egy fájlban eltárolni. A Windows nyomtató meghajtóinál lehetőség van a fájlba nyomtatás beállítására, de nem a legkényelmesebb mindig a nyomtató beállításait módosítani.
Ahhoz, hogy fájlba nyomtassunk, a programból meg kell változtatnunk a nyomtatási port-ot "FILE:"-ra. Nézzük, hogy hogyan is tehetjük ezt meg.
Első lépésben lefoglalunk memóriát az adatoknak, majd a TPrinter osztály segítségével lekérdezzük a nyomtató beállításait. Ezt a GetPrinter függvénnyel tehetjük meg, amely a paraméterként megadott változókban adja vissza nekünk a kívánt értékeket. Az első három paraméter PChar típusú, míg a negyedik egy THandle típusú változó.
GetMem(pDevice, cchDeviceName);
GetMem(pDriver, MAX_PATH);
GetMem(pPort, MAX_PATH);
Printer.GetPrinter(pDevice, pDriver, pPort, hDMode);
Ha megkaptuk az adatokat, akkor mindjárt vissza is adhatjuk őket úgy, hogy a harmadik paramétert (ami a nyomtatási port-ot határozza meg) megváltoztatjuk "FILE:"-ra. Ezzel elértük azt, hogy az alapértelmezett nyomtató ezentúl fájlba nyomtat.
Printer.SetPrinter(pDevice, PDriver, 'FILE:', hDMode);
Mivel a nyomtató adataira már nincs szükség, ezért felszabadítjuk a lefoglalt memóriát:
FreeMem(pDevice, cchDeviceName);
FreeMem(pDriver, MAX_PATH);
FreeMem(pPort, MAX_PATH);
Most már jöhet a nyomtatás. Ezt is a TPrinter osztály segítségével tesszük meg. A nyomtatást a BeginDoc eljárás meghívásával kezdjük. Ezzel jelezzük a nyomtatónak, hogy új dokumentumot készítünk. A TPrinter osztálynak van egy TCanvas objektuma, aminek segítségével tetszőleges grafikát rajzolhatunk. Mi most az egyszerűség kedvéért csak szöveget írunk rá. Felsoroljuk például a rendszer alá telepített nyomtatók neveit, és azt, hogy melyik port-hoz vannak rendelve. Ha elkészült a mű, akkor az EndDoc metódus meghívásával már küldhetjük is a nyomtatóra. Mivel a nyomtató port-nál "FILE:"-t adtunk meg, ezért egy dialógus ablakot kapunk, amelyben megadhatjuk a fájl nevét, .prn kiterjesztéssel. A létrejövő fájlt most már bármikor kiküldhetjük a nyomtatóra, pl. egy "copy test.prn lpt1:" DOS paranccsal.
Printer.BeginDoc;
Printer.Canvas.TextOut(100, 100, 'Animare Software
példaprogram © 2001 (http://www.animare.hu)');
Printer.Canvas.TextOut(100, 130, 'Printer :'+Printer.Title);
Printer.Canvas.TextOut(100, 160, 'Index: '+
IntToStr(Printer.PrinterIndex));
Printer.Canvas.TextOut(100, 200, 'Printers:');
i:=0;
while i<Printer.Printers.Count do
begin
Printer.Canvas.TextOut(100, 230+i*30, ' - '+
Printer.Printers[i]);
inc(i);
end;
Printer.EndDoc;
Printer.Free;
end;
end;
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 222. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|