HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Nyomtatás állományba


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;


Cikksorozat

#IDKategóriaCikk címeSorozat
3333WindowsNet Shell parancsok1. rész
3367WindowsNet Shell parancsok2. rész
3396WindowsNet Shell parancsok3. rész


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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |