Über DOS Drucken (Landscape)

Du hast eine Frage aber bist neu im Thema?
Antworten
nighty

Über DOS Drucken (Landscape)

Beitrag von nighty »

Guten Tag erstmal,
Ich versuche seit einiger Zeit über DOS einen Befehl an den Drucker zu senden das er ein Text-Dokument in Querformat drucken soll. Was ich weiß ist das ich dem Drucker erste einen Befehl geben muss das er auf Landscape schalten, dann einen zum Drucken und dann das er wieder auf Portrait schaltet. Der Drucker ist ein HP Laserjet 4250n und mit dem Computer über lpt1 verbunden. Habe dann in meheren HP Handbüchern und Foren gelesen das die HP Drucker Ihre eigene Sprache haben PLC. Darin steht das ich dem eine bestimmte Escape-Sequenz senden muss. Die für Landscape sieht so aus:
Ec&l1O
Habe dann zwei .bin dateien erzeugt, einmal für Landscape und einmal für Portrait. Die sehen so aus:
1B 26 6C 31 30 (HEX)
für Landcape.
Das habe ich dann in dem Befehl so aufgeführt:

copy/b C:\landscape.bin prn:
copy C:\test.txt prn:
copy/b C:\portrait.bin prn:


Trotzdem druckt der Drucker das Dokument immernoch in Hochformat.
Habe ich irgentwas falsch gemacht oder vergessen ?
Hoffe das die Frage hierhin passt.
frank9652
Norton Commander
Beiträge: 142
Registriert: Di 27. Mär 2007, 13:03
Wohnort: Göppingen

Beitrag von frank9652 »

Ich habe zwar keine direkte Antwort auf deine Frage, aber vielleicht bringe ich dich da auf eine Idee.
Wenn man den Hex-Befehl für Hochformatdrucken und Querformatdrucken kennt, dann könnte man das in deinen Befehl einbauen.
Vielleicht muß man bei deinem Befehl auch nur die Low-Bytes und High-Bytes tauschen?

Im folgenden kopierten Beitrag ging es darum, daß wir einen Druckertreiber der nur in 75 dpi, 150 dpi und 300 dpi drucken konnte, gepatcht hatten so daß er am Ende mit 150 dpi, 300 dpi und 600 dpi drucken konnte.

Hier ein Auszug aus meinem Artikel:
--- cut on ---
Max wusste, dass wenn ein Dokument ausgedruckt wird in der niedrigen Auflösung 75 dpi, in der mittleren Auflösung mit 150 dpi und in der hohen Auflösung mit 300 dpi zu Papier gebracht wird. Die modernen Drucker können aber mittlerweile schon 600 dpi zu Papier bringen. Max stellte sich daher die Frage, ob man die dpi-Angaben nicht austauschen könnte, ohne eine Ahnung vom Programmieren zu haben.
Mit einem Hexadezimal-Rechner stellte er fest, dass die Hexadezimalzahl für 75 dpi 00 4b, für 150 dpi 00 96, für 300 dpi 01 2C und für 600 dpi 02 58 lautet.
Also öffnete Max den Druckertreiber mit einem Hexadezimal-Editor und suchte z.B. nach der Hexadezimalzahl für 300 dpi also 2C 01. 2C 01 deshalb, weil das Low-Byte vor dem High-Byte kommt. Diese Zahl ersetzte er durch die Hexadezimalzahl für 600 dpi also 58 02. Also auch wieder Low-Byte vor High-Byte. Dies machte er im ganzen Druckertreiber 3-4 mal für jede Druckdichte. So ersetzte Max die 300 dpi durch 600 dpi, die 150 dpi durch 300 dpi, und die 75 dpi durch 150 dpi. Nachdem diese Arbeit fertig war, wurde der Druckertreiber wieder in das Verzeichnis ../System/Printer zurückkopiert, und ... anschliessend gestartet.
--- cut off ---

vielleicht hilft dir das ja weiter.

Gruß Frank
Antworten