Skriv ut directly

Hvordan skrive ut direkte til printer.Contributor: JAVIER CELUCEA to måneder siden Gareet Wilson svare på dette spørsmålet, og jeg testet det workfine ... Den beste måten jeg har funnet er å gjøre følgende, som bruker Windowsprinting rutiner, men sender data direkte til skriveren (du kan haveto forandrer ting rundt, men dette er en god skisse}. jeg har funnet ut mye av dette fra "Tre Trykketeknikker teknikker~~POS=HEADCOMP for Windows 95 ConsoleApplications," av David Tamashiro i C /C ++ Bruker Journal, January1997 . ** Først inkluderer følgende: var PrinterHandle: THandle; {håndtaket til skriveren} bruker WinSpool, Skrivere -typen TDocInfo1 = pakket posten {erstatning for DOC_INFO_1} lpszDocName: PAnsiChar; lpszOutputFile: PAnsiChar; lpszDatatype: PAnsiChar; end; ** Deretter åpner en skriver i henhold til sitt navn: var CTitle: array [0..31] av Char, CMode: array [0..4] av Char, DocInfo: TDocInfo1; begynne StrPLopy (CTitle, "Min tittel '); {setup vår tittel buffer} StrPCopy (CMode,' RAW '); {put "RAW" i vår modus buffer} FillChar (DocInfo, sizeof (DocInfo), 0); {Fylle DocInfo structurewith null s} med DocInfo ikke begynne lpszDocName: = CTitle; {Sette tittelen på vår document} lpszOutputFile: = null; {Angir ingen output file} lpszDatatype: = CMode; {Stille modus, som vi har angitt som "RAW"} ende; OpenPrinter (Skrivernavn Her, PrinterHandle, null); StartDocPrinter (PrinterHandle, 1,DocInfo); StartPagePrinter (PrinterHandle); ** Nå, skrive teksten: var Count: DWORD; {Antall byte skrevet} begynne WritePrinter (PrinterHandle, PChar (printText), Lengde (printText), Count); ** Når du er ferdig med å skrive ut, opprydning: EndPagePrinter (PrinterHandle); {Avslutte siden} EndDocPrinter (PrinterHandle); {Avslutte document} hvis PrinterHandle < > 0 da {hvis vi har en skriver håndtak} begynne ClosePrinter (PrinterHandle); {Lukke skriveren} PrinterHandle: = 0; {Viser at vi har stengt skriveren} slutt, jeg tror at om dekker det. Håper dette hjelper.



Previous:
Next Page: