[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Probleme beim Ausdrucken von PDF



Hallo Jan,

sorry, bin ein bisschen spät dran mit meiner Antwort.

Jan Kappler <public@jan-kappler.de> wrote:

> Praktisch verfügt der Drucker also über Interpreter für PS und PCL. Laut
> Konfiguration geht bei "Standardemulation" Automatisch (default), PS,
> PCL5, PCL XL und Hex Dump auszuwählen, bei "Standard Autoerkennung" PCL5
> (default) und PS.

Ok, das sind doch schon mal sehr wertvolle Informationen. Das heißt,
Du kannst bei der Einrichtung des Druckers auswählen, ob Du ihn als
PS- oder als PCL-Drucker betreiben möchtest. Die Voreinstellung bei
Autoerkennung ist PCL. Das würde ich auch empfehlen.

> Für PS kann ich die Fehlerseite ein/ausschalten, das ist die bereits
> erwähnte, die der Drucker eben in einigen Fällen ausspuckt.

Das heißt, die Fehlerseite druckt er nur, wenn er als PS-Drucker
angesprochen wird. Da er manchmal die Fehlerseite druckt, hast Du
ihn also vermutlich als PS-Drucker eingerichtet.

Oder Du hast beide Installationen gemacht (weiß nicht, ob das bei CUPS
geht) und Du oder irgendein Programm schaltet ihn vor dem Drucken um
und spricht ihn mal als PCL- und mal als PS-Drucker an. Quasi so, als
hättest Du zwei Drucker im System, einen PS- und einen PCL-Drucker und
das eine Programm verwendet den einen, das andere den anderen Drucker.

Aber das ist nur geraten. Schaue doch mal nach, als was der Drucker
installiert ist und lösche alles außer der PCL-Installation oder
reinstalliere ihn neu als PCL-Drucker.

> Kippe ich dem Drucker reinen Text rein, druckt er den. PS-Dateien
> interpretiert er ebenfalls, also sollte er die drucken. Für alle anderen
> Sachen wird er also PCL verwenden, okay.

Das muss nicht sein. Es gibt Drucker, die können nicht PS und PCL
gleichzeitig (siehe unten). Es könnte sein, dass alles (außer Text)
vor dem Drucken nach PS konvertiert wird.

> Laut Wikipedia scheint der Unterschied nicht so groß zu sein, CUPS ist
> modular aufgebaut und daher flexibler, scheint mir. Das Konvertieren
> übernehmen offenbar auch diese "Filter".

Ok, danke, gut zu wissen. Ein großer Vorteil von CUPS ist, wenn ich
es richtig verstanden habe der, dass man die Windows-Druckertreiber
verwenden kann.

> Gut, mir stellt sich dann die Frage, wie das Drucksystem entscheidet, ob
> es den Kram direkt an den Drucker schickt oder erst durch z.B.
> GhostScript jagt.

Zumindest beim traditionellen lpd-System steht das im Filter. Den
passenden Filter wählt man bei der Installation aus. Ein LaserJet-4
ohne PS braucht bei magicfilter beispielsweise den ljet4-Filter, ein
LaserJet-4M mit Postscript braucht den ljet4m-Filter. In beiden Filtern
steht beispielsweise drin, dass Fotos (jpeg) gedruckt werden, indem
jpeg über pnm nach ps konvertiert wird. Der ljet4m-Filter schickt die
so erzeugte Datei direkt an den Drucker, der ljet4-Filter wandelt die
PS-Datei vorher per gs erst nach PCL um und schickt sie dann an den
Drucker.

Zumindest in den o.g. Filtern steht auch drin, dass man an den
LaserJet-4 ohne Postscript auch direkt PCL-Dateien schicken kann, an
den LaserJet-4M mit Postscript jedoch nicht, er versteht kein PCL
(mehr). Wie das bei neueren Druckern aussieht, ob die auch gemischt
PCL und PS verstehen, weiß ich nicht.

Deine oben geschilderte Auswahl bei der Installation für Deinen Drucker
klingt für mich aber so, dass man sich ebenfalls entscheiden muss, ob
man ihn als PCL- oder als PS-Drucker installieren möchte. Es gibt zwar
noch die Autoerkennung, aber auch sie wählt offenbar nur zwischen PCL
(default) und PS aus, nicht beides gleichzeitig. Aber auch das ist nur
aus der Ferne geraten.

> Ich nehme mal an, das hierin mein Problem liegt: Neuere PDF-Versionen
> kann der Drucker nicht direkt verarbeiten, also kommt da nur Mist raus.
> Eigentlich müsste CUPS das durch GS übersetzen lassen, das natürlich
> die neueren Versionen versteht, aber genau das klappt nicht.

Dann versuche mal, den Drucker (nur) als PCL-Drucker einzurichten.
Wenn Du ihn als PS-Drucker einrichtest, kommt gs gar nicht ins
Spiel, da gs ja nur das macht, was ein PS-Drucker ohnehin selbst
kann, nämlich Postscript interpretieren/verstehen.

> Korrekt, er druckt diese Seite aus. Das Problem ist, wie man den ganzen
> Kram unter "Execution Stack" als Fehlermeldungen interpretieren soll.
> Das sieht z.B. so aus:

> {
> //def
> }
> {
> //end
> $error
> /_length
> //undef
> $error
> /init
> //get
> {
> handleerror
> }
> usw.

> Wie Fehlemeldungen sieht mir das nicht aus, eher was er macht (oder
> gemacht hat), wenn was auftritt. In diesem Fall scheint er bei einem
> Fehler zu stoppen (und druckt dann die Fehlerseite aus), was ja der Fall
> ist. Vom eigentlichen Dokument wird nicht eine einzige Seite gedruckt.

Ok, das wäre natürlich auch noch eine Möglichkeit: Dass also die oben
stehenden PS-Befehle gar keine Fehlermeldungen sind, sondern quasi der
PS-Quelltext des Dokuments, der ausgedruckt wird. Das hieße, dass der
Drucker das PS nicht als PS erkennt, sondern als Text den er ausdrucken
soll. Ob das der Fall ist, kann ich aus der Ferne nicht sagen, sorry.

> Squeeze hat GS 8.71 und gibt die Release Notes von Squeeze (PDF-1.4)
> auch ordentlich aus (jede Seite erscheint in einem grafischen Fenster,
> interessant...). Die Release Notes von Wheezy (PDF-1.5) werden ebenfalls
> ordentlich angezeigt.

Ok, dann scheint das Problem nicht bei gs zu liegen.

> Die Frage ist "nur", wie geht das? Für CUPS gibt es ja die zwei
> PPD-Dateien vom Hersteller. Leider geht daraus nicht hervor, wie damit
> der Drucker eingerichtet wird.

Da ich CUPS nicht kenne, kann ich Dir leider auch nicht sagen, wie man
damit Drucker einrichtet. Aber eine der PPD-Dateien wird vermutlich für
die Verwendung als PCL-, die andere für die Verwendung als PS-Drucker
richtig sein. Wählt CUPS das nicht automatisch aus?

> Ich hab mal in der Online-Hilfe von CUPS gestöbert und probiert:

> jan@enterprise:/mnt/public/Dokumente/Linux/Debian Squeeze$ lp -d
> "1650EN_normal" release-notes.de.pdf
> Anfrage-ID ist 1650EN_normal???210 (1 Datei(en))

> Dann fängt der Drucker an zu drucken - ohne Fehler! Komisch...

Was heißt "1650EN_normal" konkret? Ist das der Drucker eingerichtet
als PCL-Drucker? Gibt es auch ein "1650EN_ps" oder so? Oder bezieht
sich das "normal" nur darauf, dass das der default-Drucker ist?

> Ein weiterer Versuch: Release Notes von Wheezy ausdrucken mit Evince -
> geht schief, wieder nur die Fehlerseite. Interessant ist die Angabe in
> der Info von Evince: Verwendet poppler/cairo (0.12.4)
> Ob es damit ein Problem gibt? Also noch ein Versuch:

Sorry, ich kenne weder Evince noch poppler noch cairo. Hast Du in
Evince vielleicht irgendwelche Optionen für einen Drucker eingestellt,
oder kannst Du Dir anschauen, mit welchem Druckbefehlt Evince druckt?

Oder vielleicht versucht Evince aus der PDF-Datei eine PS-Datei zu
erzeugen und baut dabei Mist?

> jan@enterprise:/mnt/public/Dokumente/Linux/Debian 7 Wheezy$ lp -d
> "1650EN_normal" release-notes.de.pdf
> Anfrage-ID ist 1650EN_normal???212 (1 Datei(en))

> Das funktioniert nicht! Wieder gibt der Drucker nur die Fehlerseite aus.
> Das verstehe, wer will.

Das ist in der Tat komisch, da Du den gleichen Druckbefehl und die
gleiche PDF-Datei verwendest. Bist Du sicher, dass da nicht noch die
alte (fehlerhafte?) Evince-Datei in der Drucker-queue war und erneut
ausgedruckt wurde? Mache das gleiche doch noch mal, aber leere vor
dem erneuten Drucken die Druckerwarteschlange. Das müsste von CUPS
aus über das Menü gehen, ansonsten auch per Kommandozeile mit lprm,
falls CUPS den Befehl kennt, wovon ich aber ausgehe.

> Er kann ja beides, PS und PCL. Wie könnte ich herausfinden, welches
> Protokoll CUPS benutzt?

Das müsste über das Einrichtungsmenü von CUPS herauszufinden sein.
Ansonsten vermutlich auch mit lpd, siehe man-page, aber über das
CUPS-Menü ist sicherlich komfortabler.

Gruß, Martin


Reply to: