Ghostscript Inhalt verschoben um 1-2 mm im Gegensatz zu Windows PDF-Druck

max40

Lt. Junior Grade
Registriert
Nov. 2010
Beiträge
257
Hallo,
ich habe folgendes Problem.
Wenn ich ein PDF Dokument unter Windows über Acrobat oder sonstiges drucke, dann ist alles richtig positioniert auf dem Ausdruck.
Das ganze soll aber unabhängig von Acrobat und Druckertreiber auf einem Drucker gedruckt werden. Dazu verwende ich Ghostscript 9.06 mit folgendem Aufruf:
Code:
gs -sDEVICE=ljet4 -sOutputFile=/tmp/outfile.pcl -q -dBATCH -dNOPAUSE -dNORANGEPAGESIZE /tmp/input.pdf

Die Variante hat das Problem, dass der Ausruck 1 - 2 mm nach unten rutscht und auch etwas nach links.

In der PCL Sequenz steht ESC&l-180u36Z.
Wenn ich den Inhalt z.B. in ESC&l-160u01Z ändere, dann hat man das gleiche Druckbild von den Positionen wie über Acrobat.

Das gleiche Problem tritt auch auf anderen Druckern auf.

Jemand eine Idee an welche Schraube ich bei Ghostscript drehen kann?
Einzige alternative die ich momentan sehe ist, per kleinen Programm das ESC&l-180u36Z zu korrigieren da ich eh schon im nächsten Schritt Duplex und Fachsteuerung je Seite manipuliere. Schöner wäre aber wenn ich das nicht selber korriegieren muss.

Danke für eure Hilfe.

Gruß
Max
 
Zuletzt bearbeitet:
Hm, ich könnt mir vorstellen dass andere Seitenränder eingestellt sind wenn du über gs druckst. Vergleich doch mal die Seitenrändereinstellungen ....
 
Bin mir usicher was du meinst wo ich gucken soll. Habe mal mit einem Programm die Eigenschaften der Dateien anzeigen lassen:

Ghostscriptvariante:
{Reset}
{Simplex}
{A4}
{Portrait}
{Disable Perf Skip}
{Define Top Margin at 0 Lines}
{Long edge (left) offset registration -180}
{Short edge (top) offset registration 36}
{Rotate image}
{Set 600 dpi dot resolution}
{Select 1 Copies}
{End Graphics}
{Horiz position = 0 Dots}
{Vert position = 0 Dots}
{600 DPI Graphics resolution}
{Move down 101 Dots}
{Start Graphics at Current Cursor}
{End Graphics}
{FF}


PDF-Windows-Druck:
{Enter PJL}
@PJL {LF}
@PJL SET REPRINT=JOB{LF}
@PJL SET HOLD=OFF{LF}
@PJL SET STRINGCODESET=HPROMAN8{LF}
@PJL SET ECONOMODE=OFF{LF}
@PJL SET MEDIATYPE=REGULAR{LF}
@PJL SET LANG=GERMAN{LF}
@PJL SET PAPERFEEDSPEED=FULL{LF}
@PJL SET RESOLUTION=600{LF}
@PJL ENTER LANGUAGE=PCL
{LF}
{Set 600 dpi dot resolution}
{600 DPI Graphics resolution}
{Portrait}
{Media: Regular}
{Feed from source 7}
{A4}
{6 LPI}
{Define Top Margin at 1 Lines}
{Simplex}
{Select 1 Copies}
{Long edge (left) offset registration 0}
{Short edge (top) offset registration 0}
{Vert position = 0 Dots}
{unknown row compression mode 1030}
{FF}
 
Unter Windows sind die Seitenränder im Drucktreiber vorgegeben (bedruckbarer Bereich) und das Programm kann beim Ausdruck dann diese auf noch größer setzen, z.B.:

https://support.content.office.net/de-de/media/84c3af93-2f3e-4a29-bfef-2136351d04df.jpg

Das gs führst du ja scheinbar unter Linux aus, wie man da bei einem Druckerdevice sowas einstellt weiss ich nicht.
Ich denke aber, dass gs hier andere Ränderwerte verwendet:

{Long edge (left) offset registration -180}
{Short edge (top) offset registration 36}

Genau diese Werte willst du ja händisch ändern:

ESC&l-180u36Z
ESC&l-160u01Z

also den left Offset von -180 auf -160 und den top Offset von 36 auf 01.
Ergänzung ()

Was mir noch einfällt, schau doch mal welche Seitenränder bei deinem Acrobat Drucker unter Windows eingestellt sind.
Verwende hier mal die gleichen wie beim "echten" Drucker. Weil das PDF ist ja nach dem PDF-Drucker formatiert.
 
Zuletzt bearbeitet:
zu deiner Ergeänzung: was meinst du mit Acrobat Drucker?

Erzeugt wird das PDF mit java und itext.
Gedruckt wird über PDF-XChange Viewer auf einem Brother Drucker.

Ja, GS verwende ich auf einem Linux System, welches den Ausdruck verschiebt.

Bei welcher Konstellation soll ich die Randeinstellungen prüfen?

Danke für deine Hilfe.

Gruß
Max
 
Ich dachte weil oben was von "PDF über Windows drucken ...", da gibts von Adobe dann in der Systemsteuerung einen "Adobe PDF Printer" den man benutzen kann um PDF's zu erzeuge.

Grundsätzlich formatiert Adobe das PDF unter windows mit den Einstellungen des ausgewählten echten Druckers.
Das scheint Linux hier ja augenscheinlich anders zu machen.
Daher meine Vermutung: die Druckereinstellungen bezüglich Ränder unter Linux könnten das Problem sein.
Mehr kann ich dazu leider auch nicht sagen.
 
Hallo,

werde es jetzt im Ghostscript mit
Code:
gs -sDEVICE=ljet4 -sOutputFile=/tmp/output.pcl -q -dBATCH -dNOPAUSE -dNORANGEPAGESIZE -c "<</PageOffset [x y]>> setpagedevice" -f /tmp/inputfile.pdf
machen.

Danke für die Hilfe.

Gruß
max
 
Zuletzt bearbeitet:
Zurück
Oben