Die eigentlich interessante Frage die sich mir stellt: Wenn die Treiber das prinzipiell anders machen, wie kommen dann andere Programme damit klar?
Ich starte bei aktivem Duplex-Druck eine Job-Trennung. Ich zerlege praktisch das Gesamtdokument in kleine Dokumente, so kommen meine physisch zusammengehörenden Informationen auch wirklich nur auf das Blatt, wo es hingehört. Andere Hersteller zählen selbst und fügen bei Bedarf eine Leerseite ein, um auf einem neuen Blatt zu starten. Hat aber den Nachteil, dass wenn der Benutzer z.B. 2 Seiten auf 1 mit Duplex wählt, u.U. Informationen welche nicht auf das Blatt gehören dort wieder landen.
Irgendwie kann ich mir nicht vorstellen, dass die alle eine Sonderfunktion für Minolta-Geräte eingebaut haben. Mit ein bisschen Gestöber habe ich
das hier für Purebasic gefunden. Vielleicht lässt sich ja daraus was ableiten.
Danke! Das schau ich mir am Montag mal in Ruhe an
Daneben ist mir an deiner Routine noch was aufgefallen. Du fragst nur dmDuplex ab, nicht jedoch dmFields. Versuchs doch mal so:
Delphi-Quellcode:
function CanDuplex: Boolean;
var
Device, Driver, Port: array[0..255] of Char;
hDevMode: THandle;
begin
Printer.GetPrinter(Device, Driver, Port, hDevmode);
Result:= WinSpool.DeviceCapabilities(
Device, Port, DC_DUPLEX, NIL, NIL
) <> 0;
end;
Mangels duplexfähigem Drucker kann ich das grad nicht testen. Diese Lösung stammt von
hier.
Ich habe die Funktion auch schon versucht, diese liefert mir auch nur zurück, dass der Drucker kein Duplex kann. Aber um sicher zu gehen, werden ich das nächste Woche nochmal testen.
Danke für die Ideen, ich bin gespannt, was ich daraus machen kann
Wer sucht, der findet. Wer länger sucht, findet mehr.