Mega Code Archive

 
Categories / Delphi / Printing
 

Print a PRN file

Title: print a PRN file? uses Printers, Winspool; function SpoolFile(const FileName, PrinterName: string): Integer; var Buffer: record JobInfo: record // ADDJOB_INFO_1 Path: PChar; JobID: DWORD; end; PathBuffer: array[0..255] of Char; end; SizeNeeded: DWORD; Handle: THandle; PrtName: string; ok: Boolean; begin // Flush job to printer PrtName := PrinterName; if PrtName = '' then PrtName := Printer.Printers[Printer.PrinterIndex]; // Default printer name ok := False; if OpenPrinter(PChar(PrtName), Handle, nil) then if AddJob(Handle, 1, @Buffer, SizeOf(Buffer), SizeNeeded) then if CopyFile(PChar(FileName), Buffer.JobInfo.Path, True) then if ScheduleJob(Handle, Buffer.JobInfo.JobID) then ok := True; if not ok then Result := GetLastError else Result := 0; end; procedure TForm1.Button1Click(Sender: TObject); begin if SpoolFile('c:\test.prn', Printer.Printers[0]) = 0 then ShowMessage('No error...'); end;