Hallo,
ein Bekannter von mir hat einen Printserver laufen unter SuSE 9.0 mit CUPS 1.1.19 sowie Samba. Dieser stellt WinXP Clients einen HP Laserjet 5 zur verfügung.
Nun tritt folgendes Problem auf:
Wenn man von einem WinXP Client aus Mozilla heraus eine Seite drucken will erscheint die Meldung: "Drucken am Beginn der Seite fehlgeschlagen." und es wird nichts gedruckt.
Versucht man die selbe Seite gleich nochmal zu drucken wird der Auftrag ohne Probleme ausgeführt und die Seite gedruckt. Versucht man denn wieder eine andere Seite zu drucken muss man den Auftrag wieder zweimal abschicken bis es funktioniert.
Druckt man aus einer anderen Anwendung heraus z.B. Acrobat Reader gibt es keine Probleme. Der Auftrag wird beim ersten Mal ausgeführt. Recherche im Internet ergab, dass es an den Temporären Dateien von WinXP liegen kann. Also hat er diese gelöscht und siehe da, das drucken aus Mozilla heraus funktionierte ohne Probleme. Allerdings schafft das nur kurzzeitig Abhilfe d.h. wenn man zwei oder drei Seiten gedruckt hat taucht die Fehlermeldung wieder auf.
Daraufhin hat er CUPS komplett deinstalliert und wieder installiert. Das brachte vielleicht zwei Wochen Abhilfe. Allerdings tauchte dann wieder die Meldung auf.
Außerdem hat er das Problem, wenn "große" PDFs (0,5-2MB) gedruckt werden sollen, dass es teilweise 5 Minuten dauert bis der Drucker beginnt zu drucken. Und dann lässt sich der Drucker zwischen den einzelnen Seiten desm PDF zwischen 30s und 1min Zeit bis er die nächste Seite druckt. Bei Textdateien tritt das Problem nicht auf. Wird der Drucker direkt an einen Client geklemmt druckt er diese sofort und ohne Verzögerung.
Wisst ihr woran das liegen könnte?
MFG
Thomas
Linux 15.036 Themen, 107.107 Beiträge
Was passiert, wenn der Drucker vom Clienten direkt als HTTP-Printer angesprochen wird? Füge dazu den Drucker hinzu als Netzwerkdrucker mit der Adresse http://server:631/printers/druckername
Wie ist Samba konfiguriert? Werden Client- oder Serverseitige Treiber verwendet? Poste vielleicht gleich die ganze /etc/samba/smb.conf.
Hallo,
wenn der Drucker als HTTP-Printer angesprochen wird funktioniert drucken aus Mozilla ohne Probleme. Allerdings bleibt das Problem mit den PDFs bestehen.
Es werden serverseitige Treiber verwendet.
Hier die smb.conf:
# Samba config file created using SWAT
# from ********.******* (192.168.***.***)
# Date: 2006/09/07 15:48:33
# Global parameters
[global]
workgroup = ***************
server string =
encrypt passwords = Yes
map to guest = Bad User
time server = Yes
unix extensions = Yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
printcap name = CUPS
os level = 2
printing = cups
veto files = /*.eml/*.nws/riched20.dll/*.{*}/
[homes]
comment = Home Directories
valid users = %S
read only = No
create mask = 0640
directory mask = 0750
browseable = No
[printers]
comment = All Printers
path = /var/tmp
create mask = 0600
hosts allow = 192.168.***.*
printable = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775
[laserjet]
path = /tmp
guest ok = Yes
hosts allow = 192.168.***.*
printable = Yes
printer driver = HP Laserjet 5
printer driver location = /usr/share/cups/drivers
In den mit Sternchen versehenen Stellen stehen normalerweise die zugehörigen Einstellungen.
MFG
Thomas
Ich würde clientseitige Treiber installieren und Samba auf raw-Printing umstellen. Treiberverteilung mit Samba ist ja an sich kein Problem.
Ich kenne mich mit Samba nicht gut aus. Ich würde an deiner Stelle einen kleinen Printserver kaufen:
http://www.computeruniverse.net/products/90133816.asp
Der müßte sich sogar mit dem HP Konfigurationstool HP Web JetAdmin konfigurieren lassen.
Unter Unix/Linux wird im Postscriptformat gedruckt. Bei der Umwandlung vom Postscriptformnat in ein anderes Druckformat kommt es immer wieder zu Qualitäsverlusten. Linux als Printserver einzurichten lohnt nur, wenn man einen echten Postscriptdrucker nutzt.
Ich würde Linux als Fileserver einrichten und unter Windows mit der SFU 3.5 von Microsoft einen NFS-Client konfigurieren.
Die kleinen Printserver verbrauchen auch viel weniger Energie. Allein schon wegen der Stromkosten , hat sich so ein kleiner Printserver schnell amortisiert.
Es geht hierbei nicht nur um die möglichst rationale Umsetzung sondern auch um einen Lerneffekt. Außerdem habe ich noch keinen Printserver, außer finanziell unereichbarer Geräte, gesehen der serverseitige Treiber unterstützt. Ich finde es toll auf den Clients keine Treiber installieren zu müssen.
Der Laserjet hat ja auch eine Vorbereitung um einen Printserver einbauen zu können die es bei Ebay relativ günstig gibt.
MFG
Thomas
Der Nachteil von samba in Verbindung mit cups sind eben die serverseitigen Treiber.
Das Drucksystem cups funktioniert nur mit Postscript als Druckformat. Deshalb müssen entweder auf dem Client oder dem Server entsprechende Treiber (das sind eigentlich Filter) instaliert werden.
Unter Unix wurde in den 80er jahren Postscript als Druckformat als Standard festgelegt. Die echten Postscriptdrucker haben ein Postscriptmodul eingebaut, welches als Postscriptinterpreter arbeitet. Bei normalen Druckern fehlt dieses Modul und man braucht deshalb Druckerfilter und den Postscriptinterpreter Ghostscript. Ghostscript wandelt das Postscriptformat, welches von einem Linux-oder Unixprogramm erzeugt wird, in ein passendes Format wie PCL um. HP Drucker verwenden sehr oft PCL als Druckformat.
Wenn diese Filter nicht fehlerfrei programmiert wurden, kommt es immer wieder zu Qualitätsverlusten beim Druckbild. Außderdem wird die CPU entweder auf dem Client oder auf dem Server sehr stark belastet. Ghostscript muß das Postscriptformat erst noch umwandeln, bevor es ausgedruckt werden kann.
Damit kann man auch die langen Druckzeiten erklären , wie es bei dir der Fall ist.
Linux kann man eigentlich nur als Printserver verwenden, wenn man einen echten Postscriptdrucker verwendet.
Dann müssen die Druckdaten nicht erst noch gefiltert werden.
Bie dieser Filterung entstehen immer wieder Qualitätseinbusen beim Druckbild, wenn der Filter nicht fehlerfrei programmiert wurde.
HP ist auch mit die einzige Firma die gute Druckerfilter programmiert:
http://hplip.sourceforge.net/
Viele von diesen Druckertreibern oder -filtern , die man von http://www.linuxprinting.org/ bekommt arbeiten eben nicht fehlerfrei. Dadurch kommt es immer wieder zu Qualitätseinbusen beim Druckbild.
Bei Verwendung eines Postscriptdruckers, fällt diese Wandlung weg und man hat das beste Druckbild, welches man überhaupt bekommen kann.
Postscript wird unter Windows nur von speziellen Programmen (Desktoppublishing) verwendet. Die meisten Windowsanwendnungen erzeugen ihre Druckdaten in einem "billigen" oder einfachen Bitmapformat.
Postscript ist eine vektororientierte Rastergrafik und geräteunabhängig. Postscript ist technisch dem Bitmapformat, wie es unter Windows verwendet wird, überlegen. Nur leider sind die Postscriptdrucker sehr teuer. Diese Druckerfilter sind sozusagen nur eine Notlösung für Anwender die sich keinen echten Poscriptdrucker leisten können oder auch wollen.
PS:
Bei http://www.computeruniverse.de gibt es mittlerweile schon recht preiswerte Postscriptdrucker.
Du kannst mal die Suchfunktion aktivieren und Postscriptmodul als Auswahlkriterium anklicken.
Hallo.
Vielen Dank für die detaillierte und verständliche Erklärung. Das macht mir die Sache verständlicher. Ich werde mich mal nach der HP Karte umsehen. Allerdings würde mich doch interessieren warum der Fehler in Mozilla kommt?
MFG
Thomas
Ich nehme mal an , das unter Windows dieser Netzwerkdrucker dann ein Postscriptdrucker ist (obwohl das auch nur ein normaler Laserjet von HP ist)
Ich benutze Windows nur für Computerspiele.
Auf dem Linux-Server werden die Druckdaten vom Postscriptformat in das PCL Format deines Druckers gefiltert. Deshalb müßte dann unter Windows dieser Netzwerkdrucker ein Postscriptdrucker sein. Vielleicht hast du nur den falschen Drucker ausgewählt.
Du mußt eventuell unter Windows Druckertreiber für Postscriptdrucker installieren. Ich habe auch schon Postscripttreiber bei Windows gesehen.
Bei Postscript gibt es verschiedene Levels . Momentan ist Postscript Level 3 aktuell.
Da reicht ein Treiber für alle Postscriptdrucker aus. Zumindest glaube ich das.
Ich würde auf dem Windows-Client einen Postscriptdrucker einrichten und über http drucken.
PS Ich habe hier einen schönen Artikel zu diesem Thema gefunden. Da gibt es auch einen Link wo man Postscriptreiber für Windows herbekommt:
http://www.tecchannel.de/server/linux/402263/index7.html
Postscripttreiber für Windows XP, 2000:
http://download.adobe.com/pub/adobe/printerdrivers/win/1.x/winstger.exe
Mir wäre der Konfigurationsaufwand zu groß.
PPS:
Ich glaube ich habe da was durcheinander gebracht .-(:
Für cups ist dieser Drucker ein Postscriptdrucker.
Samba kann diesen Postscript-Treiber wie ein Windows-Server für einen Windowsclient bereitstellen.
Man kann nach diesem Artikel auch die originalen Windows-Druckertreiber für cups installieren.
Ehrlich gesagt benutze ich Windows fast überhaupt nicht, außer für Computerspiele.
Die Windowserver stellen die Drucktreiber in speziellen Verzeichnissen bereit und das wird mit Samba irgendwie emuliert.
Für Windows ist das dann ein Postscriptdrucker nehme ich mal an.
Es sei denn man installiert für cups die originalen Windowstreiber.
Ich habe Sambe nur mal getestet und nutze Windows fast gar nicht.
Die originalen Windows-Druckertreiber funktionieren meist besser als die von cups.