whats new ¦  programming tips ¦  indy articles ¦  intraweb articles ¦  informations ¦  links ¦  interviews
 misc ¦  tutorials ¦  Add&Win Game

Tips (1541)

Database (90)
Files (137)
Forms (107)
Graphic (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Math (76)
Misc (126)
Multimedia (45)
Objects/
ActiveX (51)

OpenTools API (3)
Printing (35)
Strings (83)
System (266)
VCL (242)

Top15

Tips sort by
component


Search Tip

Add new Tip

Add&Win Game

Advertising

8 Visitors Online


 
...print a PRN file?
Autor: Karsten Saunte
[ Print tip ]  

Tip Rating (11):  
     


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, nilthen
    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;


 

Rate this tip:

poor
very good


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners