SuSE Linux: Version 8.0
Wechsel zu CUPS
Drucken via Samba
Drucken auf einem Novell-Server
Drucken mit StarOffice
Wenn Sie mit YaST2 vom Standarddrucksystem zu CUPS wechseln,
erhalten Sie eine Meldung bzgl. Paketkonflikten mit dem Hinweis,
dass Sie normalerweise "ohne sich darüber Gedanken zu machen"
fortfahren können.
Hier dürfen Sie aber keinesfalls fortfahren, sonst wird CUPS
nicht funktionieren.
Zur Unterstützung einiger sog. GDI-Drucker wurde noch das
Paket "filters" zum standardmäßigen Installationsumfang
hinzugenommen.
Dieses Paket benötigt das Paket "lpdfilter" und dieses
wiederum benötigt das Paket "lprng".
Der Standarddruckerfilter "lpdfilter" muss nicht neben
CUPS installiert sein.
Der Standarddruckerspooler "lprng" darf nicht neben
CUPS installiert sein.
Statt "lprng" muss das Paket "cups-client" installiert werden.
Bevor Sie mit YaST2 vom Standarddrucksystem zu CUPS wechseln,
deinstallieren Sie das Paket "filters" entweder mit YaST2
oder als Benutzer "root" auf der Kommandozeile mit
rpm -e --nodeps filters
Sie verwenden das Standarddrucksystem und haben mit YaST2
eine Warteschlange für einen Samba/Windows-Drucker eingerichtet
(d.h. der Drucker hängt dann normalerweise an einem Windows-Rechner).
Obwohl Sie den Rechnernamen des Samba-Servers und den Namen der
entfernten Warteschlange (d.h. den Namen des Samba-Shares)
sowie Benutzer und Passwort richtig eingegeben haben, erhalten
Sie keinen Ausdruck.
Wenigstens eine dieser Angaben enthält aber Sonderzeichen oder
Leerzeichen.
Sonderzeichen oder Leerzeichen werden nicht korrekt behandelt.
Sie können die grundlegende Funktion mit folgendem Befehl, der in einer einzigen Zeile einzugeben ist, testen
echo -en "" | smbclient "//HOST/SHARE" "PASSWORD" -c 'print -' -N -U "USER" && echo "OK" || echo "ERROR"wobei Sie für
HOST
den Rechnernamen des Samba-Servers,
für SHARE
den Namen der entfernten Warteschlange,
für PASSWORD
das Passwort und
für USER
den Benutzernamen einsetzen.OK
oder ERROR
kommt.echo -en "\rHallo\r\f" | smbclient "//HOST/SHARE" "PASSWORD" -c 'print -' -N -U "USER"ein Blatt mit dem Wort
Hallo
ausgedruckt werden.Hallo
umgeben von dem ASCII-Zeichen \r
für Wagenrücklauf
und gefolgt von dem ASCII-Zeichen \f
das einen
Seitenvorschub auslöst) drucken kann - vergl. den Artikel
Drucker einrichten
War zumindest der erste der obigen Tests erfolgreich,
dann edieren Sie die Datei
/etc/lpdfilter/QUEUE/redirect
wobei Sie für QUEUE
den Namen Ihrer lokalen
Warteschlange einsetzten, so dass nur eine einzige Zeile
mit folgendem Inhalt vorhanden ist:
/usr/lib/lpdfilter/redirect/samba_print "//HOST/SHARE" "PASSWORD" -U "USER" -Nwobei Sie wie oben
HOST
, SHARE
,
PASSWORD
und USER
ersetzen.-rwxr-x--- ... lp ...
Sie verwenden das Standarddrucksystem und haben mit YaST2
eine Warteschlange für einen Novell-Drucker eingerichtet
(d.h. der Drucker hängt dann normalerweise an einem Novell-Server).
Obwohl Sie das Paket "ncpfs" installiert haben und
Rechnernamen und Warteschlange des Novell-Servers
sowie Benutzer und Passwort richtig eingegeben haben,
erhalten Sie keinen Ausdruck.
Die Konfigurationsdatei
/etc/lpdfilter/QUEUE/redirect
die den lpdfilter veranlasst, dessen Ausgabe an den Novell-Server
weiterzuleiten, wird völlig falsch erzeugt.
Hierbei ist QUEUE
durch den Namen Ihrer lokalen
Warteschlange zu ersetzen.
Sie können die grundlegende Funktion mit folgendem Befehl, der in einer einzigen Zeile einzugeben ist, testen
echo -en "" | nprint -S HOST -q QUEUE -U USER -P PASSWORD - && echo "OK" || echo "ERROR"wobei Sie für
HOST
den Rechnernamen des Novell-Servers,
für QUEUE
den Namen der entfernten Warteschlange,
für USER
den Benutzernamen und
für PASSWORD
das Passwort einsetzen.OK
oder ERROR
kommt.echo -en "\rHallo\r\f" | nprint -S HOST -q QUEUE -U USER -P PASSWORD -ein Blatt mit dem Wort
Hallo
ausgedruckt werden.QUEUE
entsprechend eingerichtet ist.
War zumindest der erste der obigen Tests erfolgreich,
dann edieren Sie die Datei
/etc/lpdfilter/QUEUE/redirect
wobei Sie für QUEUE
den Namen Ihrer lokalen
Warteschlange einsetzten, so dass nur eine einzige Zeile
mit folgendem Inhalt vorhanden ist:
/usr/lib/lpdfilter/redirect/novell_print -S HOST -q QUEUE -U USER -P PASSWORD -wobei Sie wie oben
HOST
, QUEUE
,
USER
und PASSWORD
ersetzen.-rwxr-x--- ... lp ...
Achten Sie bei der Installation des Paketes "ncpfs" darauf, dass danach "SuSEconfig" läuft und dass dabei "/etc/permissions.easy" verwendet wird, wodurch folgende Zugriffsrechte eingestellt werden:
-rwsr-xr-x root root /usr/bin/ncpmount -rwsr-xr-x root root /usr/bin/ncpumount -rwsr-xr-x root root /usr/bin/nwsfindAndernfalls können normale Benutzer nicht mittels "nprint" drucken ("nprint" ruft seinerseits "nwsfind" auf), sondern nur "root" und die Benutzer, die der Gruppe "trusted" angehören.
Zusätzlich fehlt noch folgender Link im Paket "ncpfs", den
Sie als Benutzer "root" auf der Kommandozeile mit
cd /usr/lib/
ln -s libncp.so.2.3.0 /usr/lib/libncp.so.2.3
anlegen müssen, denn "nprint" sucht nach "/usr/lib/libncp.so.2.3".
Sie verwenden einen Drucker, der nicht mit einer
Auflösung von 300 dpi arbeitet oder nicht das Papierformat A4
verwendet und normalerweise funktioniert auch das Drucken,
nicht aber bei StarOffice-Dokumenten.
Sie verwenden in StarOffice wie empfohlen den generischen Drucker.
Insbesondere mit CUPS funktioniert es nicht.
StarOffice fügt in die PostScript-Druckausgabe Zeilen folgender Art ein:
%%BeginFeature: *Resolution 300dpi 1 dict dup /HWResolution [300 300] put setpagedevice %%EndFeature %%BeginFeature: *PageSize A4 <</PageSize [595 842] /ImagingBBox null>> setpagedevice %%EndFeatureDiese legen mit PostScript-Befehlen die Auflösung auf 300 dpi und die Seitengröße auf A4 fest, so daß es eigentlich nur für Drucker funktioniert, die das auch so verwenden.
Derartige Festlegungen sind unpassend für einen generischen Drucker.
Beim generischen Drucker hat der PostScript-Code hardwareunabhängig
zu sein.
Ein Anwendungsprogramm muß natürlich die Druckausgabe in einer
gewissen Auflösung und für eine gewisse Seitengröße erstellen,
aber es ist unnötig, das auch im PostScript-Code festzusetzten.
Insbesondere mit CUPS funktioniert es nicht, da bei CUPS derartige Einstellungen im PostScript-Code an Ghostscript weitergegeben werden - anders als beim LPRng/lpdfilter Drucksystem, das Ghostscript nur mit den Einstellungen gemäß der Druckerkonfiguration aufruft, wodurch zumindest bei manchen Ghostscript-Treibern die Festlegungen im PostScript-Code nicht ausgewertet werden.
Stellen Sie in StarOffice im Druckerdialog die Eigenschaften des generischen Druckers passend ein (Resolution und Papiergröße).
Natürlich ist es unangenehm, wenn Sie wechselweise Drucker mit
verschiedenen Auflösungen verwenden, denn dann müssen Sie zum
einen die korrekten Druckerauflösungen kennen (entweder 300 dpi
oder 360 dpi sollten zumeist funktionieren) und zum anderen
müssen Sie jedesmal passend umstellen.
Da StarOffice "binary only" ist, können das nicht wir in StarOffice
korrigieren. Bitte wenden Sie sich daher direkt an den Hersteller
von StarOffice.
Im Prinzip würde eine Anpassung der von StarOffice
für den generischen Drucker verwendeten PPD-Datei
/opt/office52/share/xp3/ppds/SGENPRT.PS
genügen, aber dann gab es Abstürze von StarOffice beim Drucken,
wenn überhaupt keine Auflösung gesetzt war.
SDB-jsmeix_print-80-probleme
)