Kein Landscape Druck mit CUPS

Supportdatenbank (jsmeix_print-cups-landscape-81)
Bezieht sich auf

SuSE Linux: Version 8.1

Symptom

Bei gewissen Programmen (z.B. a2ps) bzw. Applikationen (z.B. Netscape) werden unter CUPS Druckausgaben, die eigentlich im Querformat (Landscape) ausgedruckt werden sollen, immer im Hochformat (Portrait) gedruckt und Teile der Druckausgabe sind dann auf dem Ausdruck abgeschnitten.

Es ist in diesen Fällen auch nicht möglich den Landscape- bzw. Portrait-Druck mit entsprechenden CUPS Parametern zu erzwingen, etwa mit:
lp -o landscape PostScript-Datei
oder mit
lp -o portrait PostScript-Datei

Ursache

Eine uneinheitliche Interpretation von Programmen bzw. Applikationen einerseits und CUPS andererseits, wie Landscape bzw. Portrait zu verstehen sein soll, wenn das im PostScript-Code als
%%Orientation: Landscape
bzw. als
%%Orientation: Portrait
steht.

Steht im PostScript-Code %%Orientation: Landscape, so rotiert das CUPS Drucksystem die Druckausgabe um 90 Grad um sie passend für einen Ausdruck auf Papier, was dem Drucker im Querformat zugeführt wird, zu machen.
Wenn aber die Druckausgabe in der PostScript-Datei schon vom Programm bzw. der Applikation passend für den Landscape-Modus gedreht war, so dass die Druckausgabe auf Papier im Hochformat gedruckt werden kann, dann führt die nochmalige Drehung durch das CUPS Drucksystem zur falschen Orientierung.

Lösung

Wenn die Druckausgabe in der PostScript-Datei schon vom Programm bzw. der Applikation passend für den Landscape-Modus gedreht war, so dass die Druckausgabe auf Papier im Hochformat gedruckt werden kann, aber im PostScript-Code steht %%Orientation: Landscape, so muss das durch %%Orientation: Portrait ersetzt werden.

Dies leistet der folgende sed-Befehl:

sed -e 's/Orientation: Landscape/Orientation: Portrait/' PostScript-Datei >PostScript-Datei.neu
Die geänderte PostScript-Datei PostScript-Datei.neu sollte nun in korrekter Orientierung ausgedruckt werden.

Zum direkten Ausdruck aus Anwendungsprogrammen (z.B. Netscape) kann im Anwendungsprogramm als entsprechender Druckbefehl

sed -e 's/Orientation: Landscape/Orientation: Portrait/' | lpr
oder
sed -e 's/Orientation: Landscape/Orientation: Portrait/' | kprinter --stdin
eingetragen werden, der den Ausdruck im Portrait-Modus nicht behindern sollte, denn %%Orientation: Portrait bleibt unverändert.

Für a2ps

Wenn Sie a2ps nicht direkt verwenden oder sich mit der Konfiguration von a2ps nicht auskennen, dann ändern Sie hier nichts!

Den sed-Aufruf können Sie für a2ps in /etc/a2ps-site.cfg eintragen, indem Sie dort die Zeile

UnknownPrinter: | #{lp} #o
beispielsweise durch
UnknownPrinter: | sed -e 's/Orientation: Landscape/Orientation: Portrait/' | #{lp} #o
ersetzten und ggf. analog mit der "DefaultPrinter"-Zeile verfahren.

Die Information zur Konfiguration von a2ps stammt von Herrn Willy Weisz wofür wir uns herzlich bedanken!

Auf analoge Weise kann der sed-Befehl auch bei anderen Programmen eingebaut werden, so dass die Druckausgaben automatisch korrigiert werden. Konsultieren Sie dazu die Dokumentation zum jeweiligen Programm. In jedem Fall funktioniert es, in eine Datei zu drucken und dann den sed-Befehl auf die Datei anzuwenden (sofern die Druckausgabe in der Datei PostScript ist).

Nur für Leute, die sich mit CUPS gut auskennen

Der sed-Befehl ist ein Workaround um die Druckausgabe der Anwendungsprogramm zu korrigieren und das muss je nach Anwendungsprogramm anders konfiguriert werden.

Eine grundsätzliche Lösung bietet CUPS Version 1.1.18. Diese CUPS Version umgeht das Problem, so dass hiermit Landscape-Druck ganz normal möglich ist.

Bisher kamen nur positive Rückmeldungen bzgl. CUPS 1.1.18 und evtl. ist diese neue CUPS Version auch für Sie interessant, zumal CUPS 1.1.18 bereits die Security-Fixes enthält, die ansonsten ein Update gemäss "http://www.suse.de/de/private/download/updates/81_i386.html" nötig machen.

Beachten Sie aber dennoch, dass wir für CUPS 1.1.18 keine Garantie, Gewährleisung oder Support übernehmen.

Das liegt daran, dass bei CUPS 1.1.18 eine neue Version der CUPS-Bibliotheken (Paket cups-libs) dabei ist und etliche wichtige Programme (z.B. Ghostscript, KDE, Samba, Wine und die YaST2 Druckerkonfiguration) benötigen die CUPS-Bibliotheken, d.h. sie sind gegen die CUPS-Bibliotheken gelinkt und geänderte CUPS-Bibliotheken können beliebige Probleme verursachen.

Insbesondere mit USB-Druckern könnte es bei CUPS 1.1.18 Probleme geben, weil CUPS 1.1.18 für USB-Drucker eine andere Art der Device-URI verwendet (usb://VENDOR/MODEL?serial=...) womit die Device-URI nur noch vom Druckermodell abhängt und nicht mehr an eine feste Gerätedatei (/dev/usb/lp...) gebunden ist - siehe bei CUPS 1.1.18 und angeschlossenen USB-Druckern die Ausgabe von /usr/lib/cups/backend/usb. Ggf. ist also die Device-URI in /etc/cups/printers.conf anzupassen, wobei die direkte Angabe der Gerätedatei (usb:/dev/usb/lp...) immer noch funktioniert.

Zum Testen von CUPS 1.1.18 mit SuSE Linux 8.1 siehe "Test neuer CUPS Versionen für SuSE Linux 8.1" (http://sdb.suse.de/de/sdb/html/jsmeix_print-cups-testversion-81.html).


Siehe auch:
o Einstellungen zum Ausdruck mit CUPS
o Einstellungen zum Ausdruck von ASCII-Texten mit CUPS

Stichwörter: DRUCKEN, DRUCKER, CUPS, 81, 8.1, ORIENTATION, LANDSCAPE, PORTRAIT, QUERFORMAT, HOCHFORMAT, A2PS

Kategorien: Drucker

Feedback willkommen: Send Mail to jsmeix@suse.de (Geben Sie bitte folgendes Stichwort an: SDB-jsmeix_print-cups-landscape-81)
SDB-jsmeix_print-cups-landscape-81, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 13. Dec 2002
SuSE Linux AG - Zuletzt generiert: 17. Feb 2003 von jsmeix (sdb_gen 1.40.0)