Ich habe das Problem mittlerweile lösen lönnen, jedoch habe ich nun ein neues...
Ich habe die PrintAll procedure mittlerweile umgeschrieben und zwar folgendermassen:
Code
procedure PrintAll(PrinterName: string=''; Copies: integer=1; duplexMode:TDuplexMode=dmSimplex);
var
Device, Driver, Port : array [0..255] of Char;
ResStr : array[0..255] of char;
hDevMode : HGLOBAL;
pDevMode : PDeviceMode;
begin
// Standard Drucker hohlen
GetProfileString('Windows','device','',ResStr,255);
PrinterName := StrPas(ResStr);
// Printer holen
Printer.GetPrinter(PChar(PrinterName), Driver, Port, hDevmode);
hDevMode := Command(COMPDF_PrintGetDEVMODE);
pDevMode := GlobalLock(hDevMode);
// WPView Printer übergeben
CommandStr(COMPDF_SelectPrinter, Device);
// WPView soll DevMode des Printers nicht setzen
CommandEx(COMPDF_DONTSETDEVMODE,1);
// DuplexMode setzen
try
case duplexMode of
dmSimplex: pDevMode^.dmDuplex := DMDUP_SIMPLEX;
dmDuplexH: pDevMode^.dmDuplex := DMDUP_HORIZONTAL;
dmDuplexV: pDevMode^.dmDuplex := DMDUP_VERTICAL;
end;
pDevMode^.dmFields := pDevMode^.dmFields or DM_DUPLEX;
// DuplexMode zuweisen an WPView Printer
CommandStrEx(COMPDF_PrintSetDEVMODE, '', Cardinal(pDevMode));
// Anzahl Kopien übergeben
CommandEx(COMPDF_SelectCopies, Copies);
// Drucken
CommandStr(COMPDF_Print, '1-' + IntToStr(PageCount));
finally
// Printer freigeben
GlobalUnlock(hDevMode);
end;
end;
Alles anzeigen
Hiermit funktioniert zwar die Auswahl Simplex/Duplex, jedoch werden die PDF's in völlig willkürrlicher Reihenfolge gedruckt. Woran könnte das liegen? Die PrintAll funktion Rufe ich pro PDF und in der richtigen Reihenfolge auf.