Hallo und vielen Dank an euch.
Da der QR in QRPRNTR bei Druckerwechsel jeweils ein eigenes GetPrinter, SetPrinter durchführt löse ich das durch Setzen des gewünschten PDF-Names in der aufrufenden Routine. Dort wechsle ich ja auch automatisch auf den PDF-Printer.
Code:
Printer.PrinterIndex := Printer.Printers.IndexOf('Microsoft Print to PDF'); // MS PDF-Drucker
Printer.Title:='xyz.pdf'; // der gewünschte Dateiname
In der
Unit QRPRNTR habe ich dann die Prozedur ResetDriver aufgeschlaut und schaue, ob ein Pdf erzeugt werden soll. Wenn ja, dann setze ich den Port eben mit diesen Dateinamen.
Code:
procedure ResetDriver(aPrinter : TPrinter);
var
Device, Name, Port: array[0..MAX_PATH] of Char;
DevMode: THandle;
begin
aPrinter.GetPrinter( Device, Name, Port , DevMode );
if Pos('.pdf',aPrinter.Title)>0
then aPrinter.SetPrinter( Device, Name, PWideChar(aPrinter.Title) , 0 )
else aPrinter.SetPrinter( Device, Name, Port , 0 ); // 12/02/16
end;
Danke und ciao
Frank