Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как послать файл на принтер?

01.01.2007
uses winspool;
Const
 
GenericPrinter: Pchar = 'Universal/Nur Text';
 
// Change to systems generic drivers name, it's localized
Procedure PrintLineToGeneric(Const line: string );
Var
 
BytesWritten: DWORD;
  hPrinter
: THandle;
 
DocInfo: TDocInfo1;
Begin
 
If not WinSpool.OpenPrinter(GenericPrinter, hPrinter, nil) Then
   
raise exception.create('Printer not found');
 
Try
   
DocInfo.pDocName := 'MyDocument';
   
DocInfo.pOutputFile := Nil;
   
DocInfo.pDatatype := 'RAW';
   
If StartDocPrinter(hPrinter, 1, @DocInfo) = 0 Then
     
Abort;
   
Try
     
If not StartPagePrinter(hPrinter) Then
       
Abort;
     
try
       
If not WritePrinter(hPrinter, @line[1], Length(line), BytesWritten)
       
Then
         
Abort;
     
Finally
       
EndPagePrinter(hPrinter);
     
End;
   
Finally
     
EndDocPrinter(hPrinter);
   
End;
 
Finally
   
WinSpool.ClosePrinter(hPrinter);
 
End;
End;