Hallo Zusammen,
nach langem Suchen habe ich nun endlich eine Funktion gefunden.
vielleicht kann der Eine oder Andere diese ja gebrauchen.
Mit dieser Funktion kann man Plotfiles oder PRN's direkt an einen Druckertreiber senden.
Delphi-Quellcode:
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;
Gruß
Orion3000