Mittwoch, 23. Januar 2008

Java druckt nicht unter Ubuntu 7.10

Versucht man unter Ubuntu 7.10 aus einem Java-Programm etwas heraus zu drucken, so erhält man auf den meisten Systemen diese Exception:

java.lang.NullPointerException: null attribute
at sun.print.IPPPrintService.isAttributeValueSupported(IPPPrintService.java:1147)
at sun.print.ServiceDialog$OrientationPanel.updateInfo(ServiceDialog.java:2121)
at sun.print.ServiceDialog$PageSetupPanel.updateInfo(ServiceDialog.java:1263)

die Ursache hierfür ist die Drehbarkeit der Seite in CUPS v1.3. Hierbei wird beim Modus "automatisch" ein Nullpointer zurückgegeben, mit dem die aktuelle Java-Version noch nichts anfangen kann:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6633656

Damit man trotzdem drucken kann, muss man entweder
  • die Seitendrehung von "automatisch" auf einen festen Wert stellen
  • CUPS auf eine ältere Version umstellen
Da bei meinem Drucker die erste Option nicht ging, hab ich die zweite realisiert. Hierzu musste ich zuerst in der Datei /etc/apt/sources.list Feisty als Quelle angeben:

deb http://de.archive.ubuntu.com/ubuntu/ feisty main restricted

Dann in der Datei /etc/apt/preferences - die ich neu erstellen musste - folgenden Eintrag machen:

Package: cupsys
Pin: version 1.2.8-*
Pin-Priority: 1001

Danach kann man mit

sudo apt-get update
sudo apt-get upgrade

die Version von CUPS auf die ältere deaktualisieren und das Drucken klappt wieder.