Einzelnen Beitrag anzeigen

DelphiApostel

Registriert seit: 12. Apr 2005
10 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Ändern der Druckeinstellungen beim Drucken von PRN-Dateien

  Alt 8. Apr 2011, 08:42
@omata: ich habe gedacht, dass der wichtigste Teil des Quellcodes ausreichen würde, um das Problem zu verstehen. Ich sehe aber auch ein, dass eine, ohne weitere Anpassungen startbare, Routine/Funktion sehr viel hilfreicher ist. Ich werde in Zukunft darauf achten.

Nun zurück zu meinem Problem.
Dein Tipp funktioniert leider nicht. Übrigens hast du die Fields-Maskierung vergessen:
Delphi-Quellcode:
  ...
  DevMode := GlobalLock(hDeviceMode);
  DevMode^.dmDefaultSource:=1;
  DevMode^.dmFields := DevMode^.dmFields or DM_DEFAULTSOURCE; //dmFields-Maskierung
  ...
Die Druckeinstellungen im PRN-Dokument werden hier bevorzugt. Die Windows Druckeinstellungen (die man mit dem oberen Code einstellt) werden nicht berücksichtigt. Die Druckaufträge, die vom PostScript RAW-Drucker des Clients kommen (siehe mein Diagramm im Anhang), müssen an unterschiedliche Drucker und auf unterschiedliche Druckerschächte umgeleitet werden (unabhängig vom Treiber des RAW-Druckers).

Da die Priorität anscheinend nicht geändert werden kann, habe ich mir gedacht man könnte doch den Text im Buffer analysieren/auswerten . Kommt im Buffer eine Zeichenkette mit "MediaPosition" (siehe unten) vor, wird diese dynamisch verändert und anschließend mit WritePrinter an den Drucker geschickt (in den PRN-Dateien wird mit MediaPosition der Druckerschacht vorgegeben).

Auszug aus einer PRN-Datei (PostScript Dialect):
Code:
%%BeginFeature: *InputSlot Fach 5
<</ManualFeed false /MediaPosition 5>> setpagedevice  //für Schacht 3 muss MediaPosition 5 durch MediaPosition 3 ersetzt werden!
%%EndFeature
Nachdem ich die Idee ausprobiert habe, werde ich die Ergebnisse hier beschreiben.
  Mit Zitat antworten Zitat