uses
Printers, WinSpool;
...
var
aDriver, aPort, aPrinterName: array[0..255] of Char; { aDriver and aPort won¡¯t be used }
iSize, iN: Integer;
Info: PAddJobInfo1;
fPrinter: TextFile;
hPrinter: THandle;
begin
Printer.GetPrinter(aPrinterName, aDriver, aPort, hPrinter);
OpenPrinter(aPrinterName, hPrinter, nil);
try
AddJob(hPrinter, 1, nil, 0, iSize); { Get buffer size }
GetMem(Info, iSize);
try
{ This function will return the name of the file we can write to }
AddJob(hPrinter, 1, Info, iSize, iN);
{ Now write to the file }
AssignFile(fPrinter, Info^.Path);
Rewrite(fPrinter);
try
WriteLn(fPrinter, ¡®Hello world!¡¯);
WriteLn(fPrinter, ¡®This is text will be printed¡¦¡¯);
finally
CloseFile(fPrinter);
end;
{ Put the file into the printing line, after that Windows will delete it }
ScheduleJob(hPrinter, Info^.JobId);
finally
FreeMem(Info);
end;
finally
ClosePrinter(hPrinter);
end;
end;