Discussion:
gs und gelöschte Druckjobs
(zu alt für eine Antwort)
Martin Trautmann
2010-04-29 14:59:54 UTC
Permalink
Hallo,

durch wechselnde Arbeitsorte schicke ich manchmal versehentlich
Druckjobs an den falschen Drucker. Diese kann ich problemlos im
Drucker-GUI wieder löschen.

Allerdings bleibt je ein gs-Job hängen, der nicht von alleine verschwindet.
Da diese Hintergrundjobs hier auf dem Rechner gerne mal je 20%
CPU-Leistung verheizen wird der Rechner damit schnell zäh, bis ich diese
Jobs wieder mit sudo kill -9 rauswerfe.

Das Problem rührt möglicherweise von der Ghostscript-Nachinstallation
her: die Installation von TeX zerstörte erst einmal den zuvor problemlos
funktionierenden Drucker-Setup. Mit der Nachinstallation von Version
8.71 geht das Drucken wieder. Aber seitdem beobachte ich diese hängenden
gs-Jobs.


Weiss jemand Abhilfe? Vielleicht brauche ich ja nur ein paar
Voreinstellungseinträge oder Kompilierungsoptionen.

Danke,
Martin
Thomas Kaiser
2010-05-05 09:58:15 UTC
Permalink
Post by Martin Trautmann
Weiss jemand Abhilfe?
Nö, ich zumindest nicht, da ich MacOS X 10.2 schon seit Jahren nicht
mehr benutze.
Post by Martin Trautmann
Vielleicht brauche ich ja nur ein paar Voreinstellungseinträge oder
Kompilierungsoptionen.
Vielleicht auch einfach nur "MarcoPolo" anstatt "Kompilierungsoptionen"?

http://www.macupdate.com/info.php/id/24508/

Gruss,

Thomas
Martin Trautmann
2010-05-06 13:07:18 UTC
Permalink
Post by Thomas Kaiser
Post by Martin Trautmann
Weiss jemand Abhilfe?
Nö, ich zumindest nicht, da ich MacOS X 10.2 schon seit Jahren nicht
mehr benutze.
Hm, hat der Rechner je 10.2 gesehen? Aktuell bin ich auf 10.4
Post by Thomas Kaiser
Post by Martin Trautmann
Vielleicht brauche ich ja nur ein paar Voreinstellungseinträge oder
Kompilierungsoptionen.
Vielleicht auch einfach nur "MarcoPolo" anstatt "Kompilierungsoptionen"?
http://www.macupdate.com/info.php/id/24508/
Hm, danke, das automatisiert evtl. den location-Wechsel. Welcher Drucker
mir aber als default eingestellt wird, das wirkt recht zufällig und
hängt z.B. bei OpenOffice wohl von allem möglichen, aber weder von der
location noch den printer preferences ab.

Schönen Gruß
Martin
Thomas Kaiser
2010-05-06 14:19:27 UTC
Permalink
Post by Martin Trautmann
Post by Thomas Kaiser
Post by Martin Trautmann
Weiss jemand Abhilfe?
Nö, ich zumindest nicht, da ich MacOS X 10.2 schon seit Jahren nicht
mehr benutze.
Hm, hat der Rechner je 10.2 gesehen? Aktuell bin ich auf 10.4
Ab 10.3 gibt es das PSNormalizer Framework (in Form von pstopdf(1), der
Rendering Funktionalität für (E)PS in Preview.app und natürlich auch in
Form von CUPS-Filtern, konkret /usr/libexec/cups/filter/pstopdffilter
und /usr/libexec/cups/filter/pstocupsraster). Wozu braucht man nach 10.2
noch GhostScript im Zusammenhang mit Drucken? Bzw. was verstehst Du
unter "gs-Jobs" im Zusammenhang mit Drucken?
Post by Martin Trautmann
Post by Thomas Kaiser
Post by Martin Trautmann
Vielleicht brauche ich ja nur ein paar Voreinstellungseinträge oder
Kompilierungsoptionen.
Vielleicht auch einfach nur "MarcoPolo" anstatt
"Kompilierungsoptionen"?
http://www.macupdate.com/info.php/id/24508/
Hm, danke, das automatisiert evtl. den location-Wechsel.
Macht es -- und das ohne "evtl.".
Post by Martin Trautmann
Welcher Drucker mir aber als default eingestellt wird, das wirkt recht
zufällig
Aber doch nur, wenn man seltsame Programme benutzt, die sich nicht so zu
100% unter MacOS X in die dortigen Konzepte einfügen? Was jetzt nichts
an Deinem Problem ändert... :-)

Gruss,

Thomas, weder OpenOffice nutzend noch GhostScript "zum Drucken"...
Martin Trautmann
2010-05-06 14:34:08 UTC
Permalink
Post by Thomas Kaiser
Post by Martin Trautmann
Post by Thomas Kaiser
Post by Martin Trautmann
Weiss jemand Abhilfe?
Nö, ich zumindest nicht, da ich MacOS X 10.2 schon seit Jahren nicht
mehr benutze.
Hm, hat der Rechner je 10.2 gesehen? Aktuell bin ich auf 10.4
Ab 10.3 gibt es das PSNormalizer Framework (in Form von pstopdf(1), der
Rendering Funktionalität für (E)PS in Preview.app und natürlich auch in
Form von CUPS-Filtern, konkret /usr/libexec/cups/filter/pstopdffilter
und /usr/libexec/cups/filter/pstocupsraster). Wozu braucht man nach 10.2
noch GhostScript im Zusammenhang mit Drucken? Bzw. was verstehst Du
unter "gs-Jobs" im Zusammenhang mit Drucken?
Bei der TeX-Installation ging pstopdf flöten. Deswegen habe ich gs
nachinstalliert, was mir auch pstopdf wiederbrachte. Aber ich habe den
Eindruck, das ist nur ein Script zum Aufruf von gs, ist es nicht?

gs ist was mir mit "top" als aktiven Job angezeigt wird, seltsamerweise
immer im Dreierpack. Ich habe einen solchen Job nicht gestartet, nicht
als gs. Aber ich habe ganz "normal" gedruckt, was also pstopdf
aufgerufen haben sollte.

Und diese drei gs-Jobs mit je 20% CPU-Auslatung bremsen mein System
schon brutal runter, ohne dass sie irgendwas erreichen würden. Sie
lassen sich problemlos abschiessen.
Post by Thomas Kaiser
Post by Martin Trautmann
zufällig
Aber doch nur, wenn man seltsame Programme benutzt, die sich nicht so zu
100% unter MacOS X in die dortigen Konzepte einfügen? Was jetzt nichts
an Deinem Problem ändert... :-)
Thomas, weder OpenOffice nutzend noch GhostScript "zum Drucken"...
Du glücklicher - mir fehlen leider etwas die attraktiveren Alternativen.

Schönen Gruß
Martin
Thomas Kaiser
2010-05-06 16:01:50 UTC
Permalink
Post by Martin Trautmann
Bei der TeX-Installation ging pstopdf flöten.
Wenn TeX Hand an /usr/bin/pstopdf legt, dann ist das IMO ein Unding.
Post by Martin Trautmann
Deswegen habe ich gs nachinstalliert, was mir auch pstopdf
wiederbrachte. Aber ich habe den Eindruck, das ist nur ein Script zum
Aufruf von gs, ist es nicht?
Verwechselt Du nicht zufällig nur ps2pdf und pstopdf? Ersteres ist (bei
mir zumindest) nur ein Wrapper, der per default ps2pdf14 (um PDF 1.4 per
GhostScript zu erzeugen) aufruft. Letzteres in /usr/bin/ ein Binary von
Apple, das intern einen Acrobat Distiller 5 Core nutzt, um PostScript
nach PDF zu konvertieren.
Post by Martin Trautmann
gs ist was mir mit "top" als aktiven Job angezeigt wird,
seltsamerweise immer im Dreierpack. Ich habe einen solchen Job nicht
gestartet, nicht als gs. Aber ich habe ganz "normal" gedruckt, was
also pstopdf aufgerufen haben sollte.
Wieso sollte? Wir sprechen doch von MacOS X und nicht irgendeinem Linux
oder Unix?

Kürzen wir den Kram ab. Hol Dir mal per "lpc status" den CUPS-Queue-
Namen, auf den Du da üblicherweise druckst (und Drucken in diese Queue
dann dazu führt, daß "gs" involviert ist). Und dann schau per

grep cupsFilter /etc/cups/ppd/*

nach, ob da irgendwie die CUPS-Filter-Chain verbogen wird, weil in der
PPD was Entsprechendes steht. Parallel wäre direkt nach dem Absetzen
eines Druckjobs die Ausgabe von

sudo grep filter /var/log/cups/error_log | tail

interessant.

Gruss,

Thomas
Martin Trautmann
2010-05-06 17:32:04 UTC
Permalink
Post by Thomas Kaiser
Post by Martin Trautmann
Bei der TeX-Installation ging pstopdf flöten.
Wenn TeX Hand an /usr/bin/pstopdf legt, dann ist das IMO ein Unding.
Mag sein, ist aber wohl so :-/
Post by Thomas Kaiser
Post by Martin Trautmann
Deswegen habe ich gs nachinstalliert, was mir auch pstopdf
wiederbrachte. Aber ich habe den Eindruck, das ist nur ein Script zum
Aufruf von gs, ist es nicht?
Verwechselt Du nicht zufällig nur ps2pdf und pstopdf?
Nein, nach der TeX-Installation jammerte jeder Drucker lautstark, ihm
würde pstopdf fehlen.

Was im pstopdf passiert, das weiss ich nicht wirklich.
Post by Thomas Kaiser
Letzteres in /usr/bin/ ein Binary von
Apple, das intern einen Acrobat Distiller 5 Core nutzt, um PostScript
nach PDF zu konvertieren.
Hm, das ist auch ganz brav da - nach der Installation war wohl der $PATH
verhunzt, er wollte das pdftops aus
/usr/libexec/cups/filter/...

Hm, da kommt meine Verwexlung her - der Drucker schrie nicht nach
pstopdf, sondern nach pstopxl. Und das ist nur ein Script, das gs
aufruft.
Post by Thomas Kaiser
Post by Martin Trautmann
gs ist was mir mit "top" als aktiven Job angezeigt wird,
seltsamerweise immer im Dreierpack. Ich habe einen solchen Job nicht
gestartet, nicht als gs. Aber ich habe ganz "normal" gedruckt, was
also pstopdf aufgerufen haben sollte.
Wieso sollte? Wir sprechen doch von MacOS X und nicht irgendeinem Linux
oder Unix?
Eben, ist das nicht der BSD-Unterbau von MacOS?
Post by Thomas Kaiser
Kürzen wir den Kram ab. Hol Dir mal per "lpc status" den CUPS-Queue-
Namen, auf den Du da üblicherweise druckst (und Drucken in diese Queue
dann dazu führt, daß "gs" involviert ist). Und dann schau per
grep cupsFilter /etc/cups/ppd/*
nach, ob da irgendwie die CUPS-Filter-Chain verbogen wird, weil in der
PPD was Entsprechendes steht.
Das wären dann wohl lpc status:
Brother_1670N:
printer is on device 'lpd' speed -1
Brother_1670N_CUPS:
printer is on device 'lpd' speed -1

... noch ein paar andere auf lpd und erstaunlicherweise für mich

hp_2420n:
printer is on device 'mdns' speed -1

/etc/cups/ppd/Brother_1670N_CUPS.ppd:*cupsFilter:
"application/vnd.cups-raster 0
/Library/Printers/Brother/Filter/rastertobrother1030"

/etc/cups/ppd/R1_HP2420n.ppd:*cupsFilter:
"application/vnd.cups-postscript 0 pstopxl"

/etc/cups/ppd/R1_KM_C2520_.ppd:*cupsFilter:
"application/vnd.cups-postscript 0 kyofilter"

/etc/cups/ppd/hp_2420n.ppd:*cupsFilter:
"application/vnd.cups-postscript 0 pstopxl"

Die wollen also fast alle pstopxl. Nix mit pdf, da steht nur
/etc/cups/ppd/iP4000.ppd:*cupsFilter: "application/pdf 0
/System/Library/Printers/Libraries/PrintJobMgr/Contents/MacOS/PrintJobMgr"
Post by Thomas Kaiser
sudo grep filter /var/log/cups/error_log | tail
Im Moment habe ich keinen gs-Ärger. Letzte Einträge waren z.B.
/usr/libexec/cups/filter/cgpdftops
/usr/libexec/cups/filter/pstops
/usr/libexec/cups/filter/kyofilter
/usr/libexec/cups/filter/pstopxl
als filter und dazu immer
backend /usr/libexec/cups/backend/lpd

Schönen Gruß
Martin
Goetz Hoffart
2010-05-06 19:27:35 UTC
Permalink
Post by Martin Trautmann
Post by Thomas Kaiser
Wenn TeX Hand an /usr/bin/pstopdf legt, dann ist das IMO ein Unding.
Mag sein, ist aber wohl so :-/
Welches LaTeX-Paket war das?

Grüße
Götz
--
http://www.knubbelmac.de/
Martin Trautmann
2010-05-06 19:41:47 UTC
Permalink
Post by Goetz Hoffart
Post by Martin Trautmann
Post by Thomas Kaiser
Wenn TeX Hand an /usr/bin/pstopdf legt, dann ist das IMO ein Unding.
Mag sein, ist aber wohl so :-/
Welches LaTeX-Paket war das?
TeX, Version 3.1415926 (TeX Live 2009)
über MacTeX

Schönen Gruß
Martin
Thomas Kaiser
2010-05-06 19:48:24 UTC
Permalink
Post by Martin Trautmann
Post by Thomas Kaiser
Post by Martin Trautmann
Bei der TeX-Installation ging pstopdf flöten.
Wenn TeX Hand an /usr/bin/pstopdf legt, dann ist das IMO ein Unding.
Mag sein, ist aber wohl so :-/
Soso.
Post by Martin Trautmann
Post by Thomas Kaiser
Post by Martin Trautmann
Deswegen habe ich gs nachinstalliert, was mir auch pstopdf
wiederbrachte. Aber ich habe den Eindruck, das ist nur ein Script
zum Aufruf von gs, ist es nicht?
Verwechselt Du nicht zufällig nur ps2pdf und pstopdf?
Nein, nach der TeX-Installation jammerte jeder Drucker lautstark, ihm
würde pstopdf fehlen.
Was im pstopdf passiert, das weiss ich nicht wirklich.
Naja, PostScript wird nach PDF konvertiert.
Post by Martin Trautmann
Post by Thomas Kaiser
Letzteres in /usr/bin/ ein Binary von Apple, das intern einen
Acrobat Distiller 5 Core nutzt, um PostScript nach PDF zu
konvertieren.
Hm, das ist auch ganz brav da - nach der Installation war wohl der
$PATH verhunzt, er wollte das pdftops aus /usr/libexec/cups/filter/...
Wenn man sein System irgendwie mit GhostScript verhunzt hat, dann kann
es evtl. sogar sein, daß dort auch ein pstopdf herumliegt. Das agiert
dann als CUPS-Filter und nicht als standalone-Programm. Bei den
Appleschen Beigaben übrigens das Gleiche:

* /usr/bin/pstopdf ist das standalone-Programm und will mit diesen und
jenen Parametern gefüttert werden:

<http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/pstopdf.1.html>

* /usr/libexec/cups/filter/pstopdffilter ist ein CUPS-Filter, der mit
5-6 CLI-Paramtern gefüttert werden will und ein paar spezifische
Umgebungsvariablen erwartet

<http://cups.org/documentation.php/api-filter.html#OVERVIEW>
<http://cups.org/documentation.php/api-filter.html#ENVIRONMENT>

Beide machen im Prinzip das Gleiche, nur bedingt durch den jeweiligen
Zweck unterscheidet sich die Parametrisierung.
Post by Martin Trautmann
Hm, da kommt meine Verwexlung her - der Drucker schrie nicht nach
pstopdf, sondern nach pstopxl. Und das ist nur ein Script, das gs
aufruft.
Aha, pstopxl auf einmal ;-)
Post by Martin Trautmann
Post by Thomas Kaiser
Post by Martin Trautmann
gs ist was mir mit "top" als aktiven Job angezeigt wird,
seltsamerweise immer im Dreierpack. Ich habe einen solchen Job
nicht gestartet, nicht als gs. Aber ich habe ganz "normal"
gedruckt, was also pstopdf aufgerufen haben sollte.
Wieso sollte? Wir sprechen doch von MacOS X und nicht irgendeinem
Linux oder Unix?
Eben, ist das nicht der BSD-Unterbau von MacOS?
*gähn*. Also nochmal: Apple hat seit 10.2 CUPS an Bord und seit 10.3 das
PSNormalizer Framework. Seit 10.3 gibt es *exakt keine Notwendigkeit*,
GhostScript beim Drucken zu involvieren. Ist einfach so, auch wenn es
Linux- oder Unix-vorbelastete Entwickler auch in 100 Jahren noch nicht
kapiert haben werden...

CUPS unter MacOS X funktionierte schon seit 10.2 anders als unter den
normalen unixoiden Plattformen, seit 10.3 erst Recht (keine
Notwendigkeit, gs einzubinden). Ich hab hier in der NG sicherlich schon
zehnmal erläutert, was die Unterschiede sind aber keine Lust, zu suchen.
Nur auf die Schnelle dieser bald 7 Jahre alte Artikel:

<http://kaiser-edv.de/news/MacOS/wie-funktioniert-cups.html>

(nicht fertig, weil sich für das Thema eh keine Sau interessiert)
Post by Martin Trautmann
Post by Thomas Kaiser
schau per
grep cupsFilter /etc/cups/ppd/*
nach, ob da irgendwie die CUPS-Filter-Chain verbogen wird, weil in der
PPD was Entsprechendes steht.
[...]
"application/vnd.cups-postscript 0 pstopxl"
Schrott-Eintrag, weil wenn Du den Drucker richtig eingerichtet hättest
(bzw. mit HPs mitgelieferten Treibern), dann müsste es anders lauten:

macbookpro-tk:~ tk$ zgrep cupsFilter "/Library/Printers/PPDs/Contents/Resources/HP LaserJet 2420.gz"
*cupsFilter: "application/vnd.cups-postscript 0 /Library/Printers/hp/filter/hpPostProcessing.bundle/Contents/MacOS/hpPostProcessing"
Post by Martin Trautmann
Die wollen also fast alle pstopxl.
Weil der Operator die falsche PPD ausgewählt hat. Du wirst evtl.
irgendwann mal eine olle foomatic-Installation auf Deinen Rechner
losgelassen haben und an den Nebenwirkungen heute noch laborieren?

Foomatic ist unter "normalem" Unix oder Linux 'ne tolle Sache (bringt
Skripte mit, um mittels GhostScript in allerlei Druckersprachen bzw.
Druckerrasterformate zu konvertieren, und liefert automatisiert aus
einer Datenbank für alle möglichen Drucker die dazu passenden PPDs mit).
Unter MacOS X ist das aber _spätestens seit 10.3_ überflüssig wie ein
Kropf. Und spielt insofern eine Rolle, als einem eben beim Einrichten
von Druckern PPDs angeboten werden, die den Druckjob dann auch
zwangsweise durch die foomatic-Filter (unter Benutzung von GhostScript)
durchschleusen wollen.

Aber egal, selbst wenn kein foomatic im Spiel ist -- Du hast halt die
falschen PPDs auf dem Rechner, die genau das bewirken: Durchlaufen einer
blödsinnigen CUPS-Filter-Chain.
Post by Martin Trautmann
Post by Thomas Kaiser
sudo grep filter /var/log/cups/error_log | tail
Im Moment habe ich keinen gs-Ärger. Letzte Einträge waren z.B.
Ich fragte nach den Log-Einträgen und nicht nach gefiltertem Text :-)
Post by Martin Trautmann
/usr/libexec/cups/filter/cgpdftops
/usr/libexec/cups/filter/pstops
/usr/libexec/cups/filter/kyofilter
Diese drei oberen Zeilen beziehen sich auf einen Druckjob, stimmt's?
Post by Martin Trautmann
/usr/libexec/cups/filter/pstopxl
Und diese eine auf genau einen anderen? Naja, eh egal. Richte Deine
Drucker einfach richtig ein und Du kannst auf (Ärger mit) GhostScript
beim Drucken verzichten.

Gruss,

Thomas
Martin Trautmann
2010-05-06 20:46:13 UTC
Permalink
Post by Thomas Kaiser
Post by Martin Trautmann
Hm, da kommt meine Verwexlung her - der Drucker schrie nicht nach
pstopdf, sondern nach pstopxl. Und das ist nur ein Script, das gs
aufruft.
Aha, pstopxl auf einmal ;-)
Ja, mein Fehler...
Post by Thomas Kaiser
Post by Martin Trautmann
Post by Thomas Kaiser
Wieso sollte? Wir sprechen doch von MacOS X und nicht irgendeinem
Linux oder Unix?
Eben, ist das nicht der BSD-Unterbau von MacOS?
*gähn*. Also nochmal: Apple hat seit 10.2 CUPS an Bord und seit 10.3 das
PSNormalizer Framework. Seit 10.3 gibt es *exakt keine Notwendigkeit*,
GhostScript beim Drucken zu involvieren. Ist einfach so, auch wenn es
Linux- oder Unix-vorbelastete Entwickler auch in 100 Jahren noch nicht
kapiert haben werden...
Post by Martin Trautmann
Post by Thomas Kaiser
nach, ob da irgendwie die CUPS-Filter-Chain verbogen wird, weil in der
PPD was Entsprechendes steht.
[...]
"application/vnd.cups-postscript 0 pstopxl"
Schrott-Eintrag, weil wenn Du den Drucker richtig eingerichtet hättest
macbookpro-tk:~ tk$ zgrep cupsFilter "/Library/Printers/PPDs/Contents/Resources/HP LaserJet 2420.gz"
*cupsFilter: "application/vnd.cups-postscript 0 /Library/Printers/hp/filter/hpPostProcessing.bundle/Contents/MacOS/hpPostProcessing"
Post by Martin Trautmann
Die wollen also fast alle pstopxl.
Weil der Operator die falsche PPD ausgewählt hat. Du wirst evtl.
irgendwann mal eine olle foomatic-Installation auf Deinen Rechner
losgelassen haben und an den Nebenwirkungen heute noch laborieren?
Foomatic ist unter "normalem" Unix oder Linux 'ne tolle Sache (bringt
Skripte mit, um mittels GhostScript in allerlei Druckersprachen bzw.
Druckerrasterformate zu konvertieren, und liefert automatisiert aus
einer Datenbank für alle möglichen Drucker die dazu passenden PPDs mit).
Unter MacOS X ist das aber _spätestens seit 10.3_ überflüssig wie ein
Kropf. Und spielt insofern eine Rolle, als einem eben beim Einrichten
von Druckern PPDs angeboten werden, die den Druckjob dann auch
zwangsweise durch die foomatic-Filter (unter Benutzung von GhostScript)
durchschleusen wollen.
Keine Ahnung, wie sich foomatic reingeschlichen haben sollte - ich höre
den Begriff gerade zum ersten Mal. Ich richte Drucker ganz einfach über
die printer preferences ein, ohne jegliche sonstige Einflussmöglichkeit.
Post by Thomas Kaiser
Post by Martin Trautmann
Post by Thomas Kaiser
sudo grep filter /var/log/cups/error_log | tail
Im Moment habe ich keinen gs-Ärger. Letzte Einträge waren z.B.
Ich fragte nach den Log-Einträgen und nicht nach gefiltertem Text :-)
Dann also der log-Text:

I [06/May/2010:08:33:47 +0200] Adding start banner page "none" to job 542.
I [06/May/2010:08:33:47 +0200] Adding end banner page "none" to job 542.
I [06/May/2010:08:33:47 +0200] Job 542 queued on 'R1_KM_C2520_' by 'traut'.
I [06/May/2010:08:33:47 +0200] Started filter /usr/libexec/cups/filter/cgpdftops (PID 12203) for job 542.
I [06/May/2010:08:33:47 +0200] Started filter /usr/libexec/cups/filter/pstops (PID 12204) for job 542.
I [06/May/2010:08:33:47 +0200] Started filter /usr/libexec/cups/filter/kyofilter (PID 12205) for job 542.
I [06/May/2010:08:33:47 +0200] Started backend /usr/libexec/cups/backend/lpd (PID 12206) for job 542.

oder

I [06/May/2010:08:32:38 +0200] Adding start banner page "none" to job 541.
I [06/May/2010:08:32:38 +0200] Adding end banner page "none" to job 541.
I [06/May/2010:08:32:38 +0200] Job 541 queued on 'R1_HP2420n' by 'traut'.
I [06/May/2010:08:32:38 +0200] Started filter /usr/libexec/cups/filter/cgpdftops (PID 12166) for job 541.
I [06/May/2010:08:32:38 +0200] Started filter /usr/libexec/cups/filter/pstops (PID 12167) for job 541.
I [06/May/2010:08:32:38 +0200] Started filter /usr/libexec/cups/filter/pstopxl (PID 12168) for job 541.
I [06/May/2010:08:32:38 +0200] Started backend /usr/libexec/cups/backend/lpd (PID 12169) for job 541.
Post by Thomas Kaiser
Post by Martin Trautmann
/usr/libexec/cups/filter/cgpdftops
/usr/libexec/cups/filter/pstops
/usr/libexec/cups/filter/kyofilter
Diese drei oberen Zeilen beziehen sich auf einen Druckjob, stimmt's?
Genau - wobei mich der Kyocera gerne narrt, dass er bei nur einer Kopie
mir gerne 72 davon auswirft, bei zweien aber korrekt zwei.
Post by Thomas Kaiser
Und diese eine auf genau einen anderen? Naja, eh egal. Richte Deine
Drucker einfach richtig ein und Du kannst auf (Ärger mit) GhostScript
beim Drucken verzichten.
Hm, werde ich das auch wieder richtig los? Oder muss ich da händisch die
pstopxl durch pstopdf ersetzen?

Die pstopxl waren vermutlich schon vor der TeX-Installation drin. Mit
der TeX-Installation fehlte dann pstopxl, was ich wieder
nachinstallierte.

Ich vermute, dass irgend eine Druckerinstallation (Oki, vermutlich aber
eher Brother) hier das pstopxl reingebracht haben kann. Das lief über
deren spezielle Mac-Programme aus teils ollen Zeiten - über den Brother
hatten wir ja bereits darüber diskutiert. Der Brother HL-1670N könnte
vielleicht tatsächlich aus 10.2-Zeiten stammen. Ob er das System mit
pstopxl infiziert haben könnte, das hatten wir vor ein paar Wochen noch
nicht thematisiert.

Schönen Gruß
Martin
Thomas Kaiser
2010-05-07 06:40:43 UTC
Permalink
Post by Martin Trautmann
Keine Ahnung, wie sich foomatic reingeschlichen haben sollte - ich höre
den Begriff gerade zum ersten Mal.
Vergiß foomatic wieder. Du hast offensichtlich PPDs ausgewählt, die von
GhostScript selbst stammen -- pstopxl ist Teil der GhostScript-
Distribution. Und daß ich den Kram hier nicht auf dem Rechner habe, ist
wohl meinen Settings von neulich zu verdanken:

./configure --without-pdftoraster --without-ijs --disable-cups --disable-gtk --disable-compile-inits -with-drivers=FILES --without-x

(ich brauch GhostScript nur, um PDF nach TIFF zu rendern, aus dem
Drucksystem hat es brav die Finger zu lassen)
Post by Martin Trautmann
Ich richte Drucker ganz einfach über die printer preferences ein, ohne
jegliche sonstige Einflussmöglichkeit.
Und dabei werden Dir PPDs angeboten (das Apple-GUI nennt sie blöderweise
"Treiber"), die dann den späteren Weg des Druckjobs bestimmen, eben die
CUPS-Filter-Chain vorgeben. Alles Weitere zu Thema diesbzgl. hier:

<http://kaiser-edv.de/news/MacOS/wie-funktioniert-cups.html>

(wenn Du das nicht lesen willst oder verstanden hast, dann kommst Du
auch nicht weiter bzgl. der Rolle der PPDs)
Post by Martin Trautmann
I [06/May/2010:08:32:38 +0200] Job 541 queued on 'R1_HP2420n' by 'traut'.
I [06/May/2010:08:32:38 +0200] Started filter /usr/libexec/cups/filter/cgpdftops (PID 12166) for job 541.
I [06/May/2010:08:32:38 +0200] Started filter /usr/libexec/cups/filter/pstops (PID 12167) for job 541.
I [06/May/2010:08:32:38 +0200] Started filter /usr/libexec/cups/filter/pstopxl (PID 12168) for job 541.
Danke, das ist aussagekrätig. Das war also ein normaler Druckjob
(Spoolfile PDF). Ich hab deshalb gefragt, um erahnen zu können, ob
OpenOffice ggf. auch noch Druckdaten auf unkonventionellem Wege in MacOS
X' Drucksystem hineinschleust. Ist aber wohl nicht der Fall.
Post by Martin Trautmann
Genau - wobei mich der Kyocera gerne narrt, dass er bei nur einer Kopie
mir gerne 72 davon auswirft, bei zweien aber korrekt zwei.
Du könntest ein Duplikat der PPD-Datei (/etc/cups/ppd/R1_KM_C2520_.ppd)
auf den Schreibtisch machen, dort die "cupsFilter"-Zeile rausschmeißen
und dann den Drucker erneut mit dieser modifizierten PPD einrichten und
gucken, ob das Phänomen dann immer noch präsent ist.

Der kyofilter bereitet keine Druckdaten auf bzw. konvertiert PDF/PS in
eine andere Druckersprache wie bspw. PCL oder ESC/P2 oder sowas. Sondern
er fummelt bloß irgendwelchen Kram in den PostScript-Code hinein, der
zum Problem werden kann (evtl. wegen Accounting, evtl. wegen was
anderem). Jedenfalls kann man den kyofilter wohl gefahrlos umgehen (und
umgehen bedeutet, die Vorgabe aus der PPD rauszuwerfen und den Drucker
erneut mit dieser »sauberen« PPD einzurichten), siehe auch dieses
offizielle Support-Dokument:

<http://www.kyoeasyprint.com/index/service/Technical_Support/faq/faq_details.L3ByaW50ZXJfbXVsdGlmdW5jdGlvbmFscy9mYXEvYXBwbGVfbWFjaW50b3NoX19ubw~~.html>
Post by Martin Trautmann
Richte Deine Drucker einfach richtig ein und Du kannst auf (Ärger
mit) GhostScript beim Drucken verzichten.
Hm, werde ich das auch wieder richtig los? Oder muss ich da händisch
die pstopxl durch pstopdf ersetzen?
Weia, bloß das nicht. Finger weg vom Drucksystem, wenn Du nicht weißt,
wie's funktioniert. Alles, was bei Dir problematisch ist, ist daß Dir
_falsche_ PPDs angeboten werden (schau mal in /usr/share/cups/model/
nach). Es reicht, diese falschen PPDs nicht auszuwählen beim Einrichten
eines Druckers (sondern die richtigen, die ggf. erst an Bord kommen,
wenn man die zum passenden Drucker gehörenden Treiberpakete von den
Installations-Medien nachinstalliert hat -- zumindest unter 10.4
braucht's das noch so umständlich).

Diese falschen PPDs zu löschen, ist insofern nett, als Du sie dann in
Zukunft nicht mehr versehentlich auswählen kannst. Wenn Du allerdings
nicht weißt, wie was zusammenhängt, dann laß da lieber die Finger von.
Post by Martin Trautmann
Die pstopxl waren vermutlich schon vor der TeX-Installation drin. Mit
der TeX-Installation fehlte dann pstopxl, was ich wieder
nachinstallierte.
Once again: Verzichte doch auf den GhostScript-Kram und wähl die
richtigen PPDs für Deine Drucker aus.
Post by Martin Trautmann
Ich vermute, dass irgend eine Druckerinstallation (Oki, vermutlich aber
eher Brother) hier das pstopxl reingebracht haben kann.
Das glaub ich eher nicht. Deine falschen "Druckertreiber" (in
Wirklichkeit nur simple Textdateien, also PPDs) wird Dir GhostScript an
Bord gespühlt haben. Mag sein, daß TeX Dir dann einen Filter entfernt
hat. Aber ist ja eh wurscht, weil den Filter "braucht" es nur, wenn man
die falschen PPDs nutzt. Ergo: Richtige PPD nehmen, ggf. richtigen
Treiber vorher installieren (bei PS-Druckern generell unnötig) und alles
paßt.

Gruss,

Thomas
Martin Trautmann
2010-05-07 08:18:09 UTC
Permalink
Post by Thomas Kaiser
Vergiß foomatic wieder. Du hast offensichtlich PPDs ausgewählt, die von
GhostScript selbst stammen -- pstopxl ist Teil der GhostScript-
Distribution.
Hm, komisch, die PPDs stammen doch eigentlich eher von den Herstellern
wie Brother und HP, die musse ich ja erst installieren.
Post by Thomas Kaiser
Post by Martin Trautmann
Ich richte Drucker ganz einfach über die printer preferences ein, ohne
jegliche sonstige Einflussmöglichkeit.
Und dabei werden Dir PPDs angeboten (das Apple-GUI nennt sie blöderweise
"Treiber"), die dann den späteren Weg des Druckjobs bestimmen, eben die
<http://kaiser-edv.de/news/MacOS/wie-funktioniert-cups.html>
(wenn Du das nicht lesen willst oder verstanden hast, dann kommst Du
auch nicht weiter bzgl. der Rolle der PPDs)
Deine Ausführungen dazu sind schon interessant - sie erklärten mir aber
nicht, warum sie statt pstopdf ein pstopxl verwenden.
Post by Thomas Kaiser
Post by Martin Trautmann
Genau - wobei mich der Kyocera gerne narrt, dass er bei nur einer Kopie
mir gerne 72 davon auswirft, bei zweien aber korrekt zwei.
Du könntest ein Duplikat der PPD-Datei (/etc/cups/ppd/R1_KM_C2520_.ppd)
auf den Schreibtisch machen, dort die "cupsFilter"-Zeile rausschmeißen
und dann den Drucker erneut mit dieser modifizierten PPD einrichten und
gucken, ob das Phänomen dann immer noch präsent ist.
Das werde ich mal probieren.
Post by Thomas Kaiser
<http://www.kyoeasyprint.com/index/service/Technical_Support/faq/faq_details.L3ByaW50ZXJfbXVsdGlmdW5jdGlvbmFscy9mYXEvYXBwbGVfbWFjaW50b3NoX19ubw~~.html>
Oh, danke, das kannte ich noch nicht.

Mal ausprobieren...

Danke!
Martin
Thomas Kaiser
2010-05-07 08:52:03 UTC
Permalink
Post by Martin Trautmann
Post by Thomas Kaiser
Vergiß foomatic wieder. Du hast offensichtlich PPDs ausgewählt, die
von GhostScript selbst stammen -- pstopxl ist Teil der GhostScript-
Distribution.
Hm, komisch, die PPDs stammen doch eigentlich eher von den Herstellern
wie Brother und HP, die musse ich ja erst installieren.
PPDs von Brother und HP entalten hundertpro keinen cupsFilter-Eintrag,
der auf pstopxl also GhostScript zeigt.

BTW: Das, was Du da machst ist alles komplett gaga!

Du hast diese drei Drucker:

* <http://www.openprinting.org/printer/Brother/Brother-HL-1670N>
Der kann PostScript. Alles, was es braucht, ist eine PPD, in der
steht: *direkt per PostScript ausgeben*

Bei Dir findet ein Rendering der Druckdaten auf dem Mac statt per
/Library/Printers/Brother/Filter/rastertobrother1030 (was schon OK
ist, weil Dein Mac sicherlich zehnmal schneller als das RIP des
Brother ist. D.h. Du hast Brothers Druckertreiber installiert -- im
Prinzip nicht falsch)

* <http://www.openprinting.org/printer/HP/HP-LaserJet_2420>
Der kann PostScript. Alles, was es braucht, ist eine PPD, in der
steht: *direkt per PostScript ausgeben*

Bei Dir findet eine Involvierung von GhostScript statt, der
pstopxl-Filter wird wohl HPIJS ins Spiel bringen, das die Druckdaten
rendert/rastert und per PCL verpackt weiterschickt)

* <http://www.openprinting.org/printer/Kyocera/Kyocera-CS-C2525E_KPDL>
Der kann PostScript. Alles, was es braucht, ist eine PPD, in der
steht: *direkt per PostScript ausgeben*

Bei Dir findet ein Postprocessing des PostScript-Codes durch den
kyofilter statt (was der genau außer Problemen macht, entzieht sich
meiner Kenntnis. Oft genug auch der Kenntnis des Druckerherstellers,
denn die lizensieren ihre Drucker-RIPs ja auch $irgendwo, bekommen
dann ein -- im Falle PostScript-Drucker eigentlich völlig unnötiges --
Printer-Driver-Kit für MacOS X mitgeliefert, verdödeln das noch
bisserl durch Anpassungen. Und anschl. wird das halt "gepflegt" in der
Form, daß dieser Filter vorausgesetzt wird aber keiner weiß, was der
eigentlich macht. BTST)

Alle drei Drucker können PJL/JCL (das ist eine Kontrollsprache, um
druckersprachenunabhängig gewisse Parameter wie bspw. Schachtwahl,
Papiertyp, Qualitätsmodus vornehmen zu können)

D.h. es braucht gar keine CUPS-Filter, weil Deine Drucker nur per PCL
oder sonst irgendwelchen Druckersprachen anzusteuern wären. Es reicht
eine PPD, die dem Drucksystem sagt "Bitte Druckdaten durchreichen".
Darum, daß PDF noch nach PostScript konvertiert wird, kümmert sich dann
automagisch Apples cgpdftops-Filter. Und alles funktioniert einfach so
und auch ohne daß ein gs Resourcen verbrät, etc.

Dein Setup ist im Fall des HP-Druckers einfach nur Schrott (bzw. das
Ergebnis, sich irgendwelche OpenSource-Pakete auf die Kiste zu
klatschen, die jeden unnötigen Schwachsinn ermöglichen, den es
eigentlich partout nicht braucht). Besorg Dir für den HP eine
vernünftige PPD (von HP), schmeiß die kyofilter-Zeile aus der PPD des
Kyocera und richte den neu ein. Und denk über die Grundlagen nicht mehr
nach.
Post by Martin Trautmann
Post by Thomas Kaiser
<http://kaiser-edv.de/news/MacOS/wie-funktioniert-cups.html>
(wenn Du das nicht lesen willst oder verstanden hast, dann kommst Du
auch nicht weiter bzgl. der Rolle der PPDs)
Deine Ausführungen dazu sind schon interessant - sie erklärten mir aber
nicht, warum sie statt pstopdf ein pstopxl verwenden.
Hä? Was ist?

In der PPD, die *Du* halt beim Einrichten des HP verwendet hast, wird
eben pstopxl als zwangsweise zu durchlaufender CUPS-Filter vorgegeben,
ein Skript, das seinerseits GhostScript aufruft, um dann vermutlich das
PostScript, das vorher aus den PDF-Spooldaten per cgpdftops-Filter
erzeugt wurde, per HPIJS nach PCL zu wandeln.

Fertig, aus. Die Nennung von pstopdf war doch angeblich ein Versehen
Deinerseits? Bzw. völlig wurscht, was da bei Dir mit pstopdf auch immer
passiert sein sollte. Deine PPD referenziert nur pstopxl, das bedeutet:

* Druckjobs, die als PDF daherkommen (bei 99,999% aller Mac-Programme
der Fall) durchlaufen die Filter cgpdftops, pstops und dann pstopxl

* Druckjobs, die als PostScript daherkommen (DTP-Kram, ggf. nicht
vollständig portierter OpenSource-Kram) durchlaufen die Filter pstops
und dann pstopxl

Nirgends pstopdf involviert. Und daß der Aufruf von pstopxl unnötig ist,
versuche ich ja seit geraumer Zeit und leider vergeblich klarzumachen.
Insofern klinke ich mich hier aus. Ich krieg von sowas langsam Kopfweh..
Post by Martin Trautmann
Post by Thomas Kaiser
Du könntest ein Duplikat der PPD-Datei (/etc/cups/ppd/R1_KM_C2520_.ppd)
auf den Schreibtisch machen, dort die "cupsFilter"-Zeile rausschmeißen
und dann den Drucker erneut mit dieser modifizierten PPD einrichten und
gucken, ob das Phänomen dann immer noch präsent ist.
Das werde ich mal probieren.
Post by Thomas Kaiser
<http://www.kyoeasyprint.com/index/service/Technical_Support/faq/faq_details.L3ByaW50ZXJfbXVsdGlmdW5jdGlvbmFscy9mYXEvYXBwbGVfbWFjaW50b3NoX19ubw~~.html>
Oh, danke, das kannte ich noch nicht.
Beides ist vom Ergebnis her exakt das selbe: Zeile in PPD löschen und
Zeile in PPD auskommentieren bewirkt halt das gleiche: Zeile nicht mehr
wirksam. Und um das geht's.
Post by Martin Trautmann
Mal ausprobieren...
Genau.

Gruss,

Thomas
Martin Trautmann
2010-05-07 18:02:53 UTC
Permalink
Post by Thomas Kaiser
BTW: Das, was Du da machst ist alles komplett gaga!
Alle drei Drucker können PJL/JCL (das ist eine Kontrollsprache, um
druckersprachenunabhängig gewisse Parameter wie bspw. Schachtwahl,
Papiertyp, Qualitätsmodus vornehmen zu können)
Ja, mit Ausnahme des Kyo, den der AG stellt, habe ich die anderen
eigentlich wegen genau dieser Fähigkeiten ausgewählt. Allerdings zeigt
sich speziell beim Brother, dass mit CUPS und Vorverarbeitung brauchbare
Graustufen rauskommen, bei direktem Druck eher nicht.
Post by Thomas Kaiser
Fertig, aus. Die Nennung von pstopdf war doch angeblich ein Versehen
Deinerseits? Bzw. völlig wurscht, was da bei Dir mit pstopdf auch immer
passiert sein sollte.
Dass pstopdf bei mir der Standard sein sollte, das hörte ich zum ersten
Mal von dir.

/Library/Printers/PPDs/Contents/Resources/de.lproj listet etliche
Brother PPDs von Oct 28 2005 und viele Kyo von Jul 20 2006 - die sind
also sicher weder von GS noch von Apple dort hin gelegt worden, sondern
von Herstellerprogrammen dort installiert worden.

Für HP habe ich direkt nur zwei zur Auswahl: HP LaserJet Series PCL 6
CUPS und das entsprechende für Color. Wo die liegen, weiss ich nicht. Im
Prinzip sieht die Druckerauswahl mit den Angeboten von HP, Kyo, Brother
aber ganz ordentlich aus.

In dem von Brother steht dann z.B.


*PPD-Adobe: "4.3"
*%================================================
*% Copyright(C) 2003 Brother Industries, Ltd.
*% "Brother HL-1650_1670N for CUPS"
*%================================================

*%==== General Information Keywords ========================
*cupsFilter: "application/vnd.cups-raster 0 /Library/Printers/Brother/Filter/rastertobrother1030"

Kyo nennt den
*cupsFilter: "application/vnd.cups-postscript 0 kyofilter"

Das scheint also losgelöst von pstopdf oder pstopxl zu sein.
Post by Thomas Kaiser
Nirgends pstopdf involviert. Und daß der Aufruf von pstopxl unnötig ist,
versuche ich ja seit geraumer Zeit und leider vergeblich klarzumachen.
Ich glaube dir das gerne. Da ich selbst es aber nicht bewusst aktiviert
habe, nicht weiss wo es eingestellt wird und auch nicht wie ich es
zurücksetze bin ich nicht wirklich schlauer als zuvor.

Denn in den Zeilen steht ja nicht unbedingt das pstopxl. Die Filter sind
für mich unlesbar.

Schönen Gruß
Martin
Thomas Kaiser
2010-05-09 21:00:59 UTC
Permalink
Post by Martin Trautmann
Post by Thomas Kaiser
Fertig, aus. Die Nennung von pstopdf war doch angeblich ein Versehen
Deinerseits? Bzw. völlig wurscht, was da bei Dir mit pstopdf auch
immer passiert sein sollte.
Dass pstopdf bei mir der Standard sein sollte, das hörte ich zum
ersten Mal von dir.
Ja, hörst Du das? Standard? Naja, mir alles recht wurscht inzwischen. Du
meintest irgendwas, von wegen "TeX essen pstopdf" auf. Warum auch immer.
Und ich finde, daß das egal ist :-)
Post by Martin Trautmann
Für HP habe ich direkt nur zwei zur Auswahl: HP LaserJet Series PCL 6
CUPS und das entsprechende für Color. Wo die liegen, weiss ich nicht.
Wenn Du Drucker per Systemeinstellungen hinzufügst, dann wird die PPD
nach /etc/cups/ppd/ kopiert (heißt wie die Druckerqueue). Ganz am Ende
dieser kopierten PPD steht als Kommentar, wo die ursprünglich mal lag.

Jedenfalls ist das "CUPS" im Namen Indiz dafür, daß sie bei Apple ab und
an bisserl doof sind (denn nicht "CUPS" sondern
Post by Martin Trautmann
*cupsFilter: "application/vnd.cups-raster 0 /Library/Printers/Brother/Filter/rastertobrother1030"
*cupsFilter: "application/vnd.cups-postscript 0 kyofilter"
Das scheint also losgelöst von pstopdf oder pstopxl zu sein.
Exakt. Das wissen wir aber schon, als Du auf meinen Wunsch hin die PPDs
durchgegreppt hast. Nur bei Deinem HP ist GhostScript involviert.
Post by Martin Trautmann
Post by Thomas Kaiser
Nirgends pstopdf involviert. Und daß der Aufruf von pstopxl unnötig
ist, versuche ich ja seit geraumer Zeit und leider vergeblich
klarzumachen.
Ich glaube dir das gerne. Da ich selbst es aber nicht bewusst
aktiviert habe, nicht weiss wo es eingestellt wird und auch nicht wie
ich es zurücksetze bin ich nicht wirklich schlauer als zuvor.
Du hast eine PPD ausgewählt. In dieser PPD steht drin, daß pstopxl
benutzt werden soll (cupsFilter-Eintrag). Damit kommt GhostScript ins
Spiel, was nicht sein muß. Lösung: HP-"Treiber" nachinstallieren, dann
werden Dir auch passendere PPDs kredenzt. Und dann den Drucker damit,
also *mit der passenden PPD*, neu einrichten.

Gruss,

Thomas
Martin Trautmann
2010-05-10 04:10:38 UTC
Permalink
Post by Thomas Kaiser
Wenn Du Drucker per Systemeinstellungen hinzufügst, dann wird die PPD
nach /etc/cups/ppd/ kopiert (heißt wie die Druckerqueue). Ganz am Ende
dieser kopierten PPD steht als Kommentar, wo die ursprünglich mal lag.
Danke, da steht nur ein Verweis auf tmp, war also vielleicht ein
Installer, der es direkt hinpackte.
Post by Thomas Kaiser
Du hast eine PPD ausgewählt. In dieser PPD steht drin, daß pstopxl
benutzt werden soll (cupsFilter-Eintrag). Damit kommt GhostScript ins
Spiel, was nicht sein muß. Lösung: HP-"Treiber" nachinstallieren, dann
werden Dir auch passendere PPDs kredenzt. Und dann den Drucker damit,
also *mit der passenden PPD*, neu einrichten.
Dann hole ich mir das nochmal direkt bei HP und sehe nach, was der
will...

Danke nochmals,
Martin

Gerald Eíscher
2010-05-06 21:44:06 UTC
Permalink
Post by Thomas Kaiser
Weil der Operator die falsche PPD ausgewählt hat. Du wirst evtl.
irgendwann mal eine olle foomatic-Installation auf Deinen Rechner
losgelassen haben und an den Nebenwirkungen heute noch laborieren?
Foomatic ist unter "normalem" Unix oder Linux 'ne tolle Sache (bringt
Skripte mit, um mittels GhostScript in allerlei Druckersprachen bzw.
Druckerrasterformate zu konvertieren, und liefert automatisiert aus
einer Datenbank für alle möglichen Drucker die dazu passenden PPDs mit).
Unter MacOS X ist das aber _spätestens seit 10.3_ überflüssig wie ein
Kropf.
Foomatic ist des öfteren die Rettung, wenn der Herstellertreiber/-filter
eines Tintenspritzers nicht auf diesen Tintenspritzer drucken will, wenn
der an einem Druckerserver hängt.
--
Gerald
Thomas Kaiser
2010-05-07 07:36:43 UTC
Permalink
Post by Gerald Eíscher
Post by Thomas Kaiser
Foomatic ist unter "normalem" Unix oder Linux 'ne tolle Sache (bringt
Skripte mit, um mittels GhostScript in allerlei Druckersprachen bzw.
Druckerrasterformate zu konvertieren, und liefert automatisiert aus
einer Datenbank für alle möglichen Drucker die dazu passenden PPDs
mit). Unter MacOS X ist das aber _spätestens seit 10.3_ überflüssig
wie ein Kropf.
Foomatic ist des öfteren die Rettung, wenn der Herstellertreiber/-filter
eines Tintenspritzers nicht auf diesen Tintenspritzer drucken will, wenn
der an einem Druckerserver hängt.
Das stimmt zwar für foomatic. Aber ebenso auch für alle anderen
alternativen Ansteuerungsmethoden abseits der herstellereigenen Treiber
wie bspw. gutenprint.

Wie groß ist die Anzahl der Drucker, die nur per foomatic und nicht
bspw. per gutenprint _vernünftig_ angesteuert werden können?

Das gutenprint-Projekt zeigt, wie man's eigentlich richtig macht. Ebenso
wie bei foomatic gibt es eine Datenbank mit Druckermodellen, aus denen
bei Bedarf passende PPDs generiert werden, die dafür sorgen, daß im
Druckerdialog auch erweiterte Features des Druckers (Schächte,
Papiertypen, Qualitätsmodi) nutzen lassen. Die PPDs, die gutenprint
nutzt, setzen aber darauf, CUPS das Rendering des Druckjobs zu
überlassen, d.h. setzen erst nach Umwandlung der Druckdaten in CUPS'
Rasterformat an.

PDF/PS --> CUPS Raster Format --> rastertogutenprint-Treiber --> spezfische Druckersprache

Das Gute hieran ist, daß alles bis zur Erzeugung der Bytemap (CUPS
Raster Format, das ja *genau nur für diesen Zweck* geschaffen wurde)
unter der Kontrolle von CUPS steht, also da geschieht, wo es auch
hingehört.

Der foomatic-Weg ist ähnlich, unterscheidet sich aber an einer zentralen
Stelle. Es kommt GhostScript und dessen Treiberarchitektur ins Spiel,
d.h. Abhängigkeiten von einer spezifischen GhostScript-Version (ja, die
sind mitunter fehlerhaft) und externe Abhängigkeiten von der richtigen
Version respektive Existenz der eigentlichen Treiber, die foomatic für
einen spezifischen Drucker kennt. Zudem kommt im Fall von PDF-Spoolfiles
(ca. 99,999% aller Mac-Programme erzeugen heutzutage genau das, also
werfen PDF ins Spoolsystem) eine reichlich hirntote und Performance-
fressende Zwischenwandlung von PDF nach PostScript ins Spiel.

PDF --> cgpdftops-Filter --> PS --> GhostScript --> spezifische Druckersprache

Der foomatic-Weg erscheint mir nur dort sinnvoll, wo man sich einen
Drucker zugelegt hat, der wirklich mit keinem anderen Treiber als einem
GhostScript-"internen" (d.h. "built-in" oder via Uniprint-Schnittstelle
angebunden) anzusteuern ist. In allen anderen Fällen würde ich erstmal
Richtung gutenprint schielen, einfach weil der Ansatz eleganter u.v.a.
platz- und resourcenschonender ist.

Unter <http://www.openprinting.org/drivers> findet sich ja eine nette
Auflistung von Ansteuerungsvarianten. Es gibt GS-Treiber, die genau ein
Druckermodell unterstützen, dito "Treiber", die deren 1500 gefügig
machen (once gain: gutenprint, da das auf CUPS' Rasterformat aufsetzt)

Und während man bspw. auf älteren HPs mit GhostScripts-eigenen Treibern
(foomatic) eine ziemlich besch***ene Qualität bekommt, kann man ein und
den selben Drucker per Gutenprint dazu bringen, ein perfektes Druckbild
zu produzieren.

Zudem ist es ja noch so, daß Drucker ggf. mehrere Druckersprachen
unterstützen, bspw. neben PCL auch noch PostScript nativ. D.h. es hier
meist völlig unnütz ist, den Drucker per PCL anzusteuern, wenn er doch
direkt PS spricht. Viel Theorie, von der der einfache Anwender wie
üblich genau nix mitkriegt. Dem spült eine foomatic-Installation genauso
wie GhostScript eine ganze Armada an PPDs auf den Rechner, die alle
diese kruden Wege durchs Spoolsystem vorgeben und seitens Apples GUI
("Drucker hinzufügen" in den Systemeinstellungen) auch ohne Skrupel
gelistet werden. Otto Normaluser nimmt meist den ersten Eintrag, wenn
mehrere gelistet werden. Und das Unglück nimmt seinen Lauf.

Gruss,

Thomas
Gerald Eíscher
2010-05-07 14:00:58 UTC
Permalink
Post by Thomas Kaiser
Post by Gerald Eíscher
Post by Thomas Kaiser
Foomatic ist unter "normalem" Unix oder Linux 'ne tolle Sache (bringt
Skripte mit, um mittels GhostScript in allerlei Druckersprachen bzw.
Druckerrasterformate zu konvertieren, und liefert automatisiert aus
einer Datenbank für alle möglichen Drucker die dazu passenden PPDs
mit). Unter MacOS X ist das aber _spätestens seit 10.3_ überflüssig
wie ein Kropf.
Foomatic ist des öfteren die Rettung, wenn der Herstellertreiber/-filter
eines Tintenspritzers nicht auf diesen Tintenspritzer drucken will, wenn
der an einem Druckerserver hängt.
Das stimmt zwar für foomatic. Aber ebenso auch für alle anderen
alternativen Ansteuerungsmethoden abseits der herstellereigenen Treiber
wie bspw. gutenprint.
Gutenprint natürlich auch, an den habe ich gar nicht gedacht.
Post by Thomas Kaiser
Wie groß ist die Anzahl der Drucker, die nur per foomatic und nicht
bspw. per gutenprint _vernünftig_ angesteuert werden können?
= 1
Bei meinem historischen Canon BJC-4000 ist foomatic die einzige
Möglichkeit, die Druckmodi "HighSpeed", "HighQuality" und "Fine" zu
nutzen. Gutenprint und/oder Herstellertreiber drucken ständig im
langsamen und Tinte verschwendenden Fine-Modus.
Dafür ist das Rendering von foomatic bzw. eigentlich dem Device bjc600
von GhostScript sch**ße. Egal, den Drucker nutze ich ohnehin nur mehr
für untergeordnete Zwecke und sobald die noch vorhandene Tinte
verbraucht ist, geht er den Weg allen Irdischens, auch wenn's um einen
Tintenspritzer, der noch ASCII verarbeiten und diverse Nadeldrucker
emulieren kann, irgendwie schade ist.


[Unterschied von foomatic zu Gutenprint]

Danke, nun ist mir einiges klarer.
Post by Thomas Kaiser
Und während man bspw. auf älteren HPs mit GhostScripts-eigenen Treibern
(foomatic) eine ziemlich besch***ene Qualität bekommt,
Aha, also nicht nur bei Canons.
Post by Thomas Kaiser
Zudem ist es ja noch so, daß Drucker ggf. mehrere Druckersprachen
unterstützen, bspw. neben PCL auch noch PostScript nativ. D.h. es hier
meist völlig unnütz ist, den Drucker per PCL anzusteuern, wenn er doch
direkt PS spricht.
Jein. Bei einem Lexmark Optra E312 habe ich die Erfahrung gemacht, dass
er mit PCL schneller druckt, jedenfalls unter Windoof. Ich vermute, PCL
ist für den Drucker weniger rechenaufwändig als PostScript und moderne
PCs rendern halt schneller als alte Drucker.
Post by Thomas Kaiser
Viel Theorie, von der der einfache Anwender wie
üblich genau nix mitkriegt. Dem spült eine foomatic-Installation genauso
wie GhostScript eine ganze Armada an PPDs auf den Rechner, die alle
diese kruden Wege durchs Spoolsystem vorgeben und seitens Apples GUI
("Drucker hinzufügen" in den Systemeinstellungen) auch ohne Skrupel
gelistet werden. Otto Normaluser nimmt meist den ersten Eintrag, wenn
mehrere gelistet werden. Und das Unglück nimmt seinen Lauf.
Mir hat foomatic und dessen GhostScript noch kein Probleme gemacht. Ich
sehe aber, dass unter /usr/local/bin ein veraltetes GS 8.64 liegt. Hm,
wird wohl foomatic dort hinein gekippt haben.
--
Gerald
Thomas Kaiser
2010-05-09 22:16:40 UTC
Permalink
Post by Gerald Eíscher
[Unterschied von foomatic zu Gutenprint]
Danke, nun ist mir einiges klarer.
Wobei man noch hinzufügen sollte, daß unter Unices != MacOS X und Linux
GhostScript natürlich eine zentrale Rolle auch bei Gutenprint spielt,
nachdem die meisten Programme nativ PostScript ausspucken. GhostScript
wird seitens CUPS, konkret des pstoraster-Filters, und des "cups"-Device
genutzt, um die einkommenden Druckdaten in "CUPS Raster Format" zu
wandeln (eine simple bunte Bytemap, d.h. ein gerendertes Abbild der
Druckseite), das dann Gutenprint nimmt, rastert (inkl. Spezialitäten wie
Weaving [1], um auf Tintenspritzern eine maximale Ausgabequalität zu
erzielen) und in die individuelle Druckersprache des Zielgeräts umsetzt
(bspw. PCL für HP-Drucker, ESC/P2 für Epsons, etc.)

D.h. unter Linux bspw. sieht's dann so aus, um auf einen Epson-
Tintenstrahler auszugeben:

Programm --> PS --> GhostScript --> CUPS Raster Format --> Gutenprint --> ESC/P2

Auf dem Mac hingegen sieht der Weg Richtung Gutenprint so aus (wenn man
nix kaputtkonfiguriert hat bzw. unpassende PPDs nimmt):

Programm --> PDF --> cgpdftoraster-Filter --> Gutenprint --> ESC/P2
Programm --> PS --> pstocupsraster-Filter --> Gutenprint --> ESC/P2

D.h. es braucht -- ab 10.3 -- kein GhostScript, weil MacOS X PDF "kann"
als Teil von CoreGraphics (das "cg" im cgpdftoraster-Filter steht dafür)
und für den seltenen Fall, daß Programme direkt PS erzeugen in Form von
Apples PSNormalizer Framework einen von Adobe lizensierten PostScript-
Interpreter an Bord hat (der pstocupstaster-Filter macht nix weiter
als in einem Schritt PostScript nach PDF zu wandeln und dann dieses
wiederum per CoreGraphics rendern zu lassen, natürlich in CUPS' Raster
Format)

D.h. unter MacOS X braucht's halt schlichtweg seit 10.3 kein GhostScript
mehr, weil auch ohne gs bereits alles an Bord ist, um auch PostScript
korrekt in CUPS Raster Format zu bringen und damit spezialisierte echte
Treiberpakete wie bspw. Gutenprint oder HPIJS mit Rasterung und
Umwandlung in die eigentliche Druckersprache beauftragen zu können.

Aber selbst wenn GhostScript im Rahmen von Gutenprint ins Spiel kommen
würde, gibt es noch einen zentralen Unterschied zum foomatic-Ansatz.
Zuerst zu den Gemeinsamkeiten: Sowohl Gutenprint als auch foomatic
erstellen anhand von Drucker-Datenbanken PPDs (PostScript Printer
Description) für Drucker, die gar kein PostScript können (müssen). Ziel
ist, einkommendes PostScript $irgendwie zu rendern, rastern und dann in
die druckerspezifische Sprache umzusetzen und dabei dem Anwender die
Möglichkeit zu geben, so viele Features des Druckers wie möglich auch zu
nutzen (bspw. verschiedene Qualitätsmodi, Druckerschächte, etc.)

Der Clou ist, daß diese speziellen Druckerfähigkeiten als PPD-Features
kodiert werden und dann

- bei foomatic dafür sorgen, daß der entsprechende gs-Aufruf bzw. das
die eigentliche Render- *und* Raster-Arbeit durchführende GS-Device
entsprechend passend ausfällt (kann bisweilen ein rechter Parameter-
Bandwurm werden, der da entsteht bzw. mit dem gs dann aufgerufen wird)

- bei Gutenprint dafür sorgen, daß das CUPS Raster Format, das per
GhostScript (bzw. am Mac PSNormalerizer Framework oder CoreGraphics)
mit immer identischen Parametern erzeugt wurde, vom entsprechenden für
den Druckertyp passenden Gutenprint-Treiber passend geraster wird (da
gibt es je Tintenspritzer ideale Algorithmen) und dann passend in die
Druckersprache umgesetzt wird (und dabei kommen auch Control-Codes ins
Spiel, die bspw. den Qualitätsmodus bestimmen oder die Schachtwahl und
so Zeugs)

D.h. bei foomatic wird in den PPDs nur kodiert, wie GS bzw. das
spezifische für den Drucker zuständige Device parametrisiert werden
muß/soll, während bei Gutenprint GS immer den gleichen Job macht (CUPS
Raster Format mit spezifischer Auflösung rendern) und Rasterung und
Umwandlung Sache des nachgelagerten eigentlichen Druckertreibers sind
(und die Kunst in dem Fall darin besteht, PPD-Parameter durchs
Drucksystem bis hinten raus zu dem spezifischen Treiber durchzuschleusen
anstatt wie bei foomatic einen GS-Parameter-Bandwurm zu erzeugen)
Post by Gerald Eíscher
Post by Thomas Kaiser
Zudem ist es ja noch so, daß Drucker ggf. mehrere Druckersprachen
unterstützen, bspw. neben PCL auch noch PostScript nativ. D.h. es
hier meist völlig unnütz ist, den Drucker per PCL anzusteuern, wenn
er doch direkt PS spricht.
Jein. Bei einem Lexmark Optra E312 habe ich die Erfahrung gemacht,
dass er mit PCL schneller druckt, jedenfalls unter Windoof. Ich
vermute, PCL ist für den Drucker weniger rechenaufwändig als
PostScript und moderne PCs rendern halt schneller als alte Drucker.
Das zum einen. Unter Windows ist es aber auch noch so, daß PCL hier
anders genutzt werden könnte. Während PCL aus CUPS heraus immer nur ein
gerendertes und bereits gerastertes Seitenabbild enthält, d.h. in PCL
verpackt immer nur eine große die ganze Seite beinhaltende Bitmap zum
Drucker geschickt wird, _könnte_ es Dir unter Windows passieren, daß in
PCL auch grafische Primitive wie Text, Vektorgrafiken und Bilder als
Elemente existieren. Das grafische Modell von PCL ist zwar deutlich
primitiver als das von PS/PDF aber für Vieles auch ausreichend. Und grad
im hochvolumigen Druckbereich macht sich das sehr bemerkbar, ob ein
Drucker für das Verarbeiten einer Seite 0,05 Sekunden oder 0,5 Sekunden
braucht. Aber für diese Aufgabenstellung gibt es auch schon wieder
spezialisiertere Druckersprachen wie bspw. AFP [2]

Ein weiterer Grund, einen an und für sich PostScript-tauglichen Drucker
nicht per PS anzusteuern sondern bspw. per PCL wäre, daß man "hübschere"
Ergebnisse bekommt, einfach mal der Rasterizer im PS-Interpreter des
Druckers nicht so toll ist (macht sich in Detailauflösung und Halbton-
abstufungen bemerkbar). Ich hab bspw. jahrelang eigentlich PS-fähige
HP-Laserjets per PCL angesteuert, weil mit GhostScripts lj4dith-Device
eine frequenzmodulierte Rasterung auf den Dingern möglich war (d.h. viel
feinere Details und Grauverläufe druckbar)

Aber es gibt auch Nachteile am Mac (seit MacOS X). So kann bspw. nach
wie vor bei nicht-PS-Druckern (bzw. der Ansteuerung als "raster printer",
d.h. CUPS rendert/rastert den Druckjob und schickt ihn dann als PCL oder
ESC/P2 bzw. $irgendwas-aber-kein-PostScript an den Drucker) im
Druckdialog gesagt werden, daß man die erste Seite aus Schacht 1 und die
Folgeseiten aus Schacht 2 haben will. Wird der Drucker per PostScript
angesteuert, dann geht das hingegen.

D.h. bei Druckern, die sowohl PS als auch andere Sprachen wie bspw. PCL
können, kommt's halt drauf an, was einem wichtiger ist. Qualität und
Ausgabetempo sind oft höher, wenn man _nicht_ per PS ausgibt. Die
Flexibilität (und Unabhängigkeit von Treibern) ist dagegen bei PS höher.

Hat aber alles nix mit GhostScript zu tun, weil es das -- ich wiederhole
mich -- seit 10.3 am Mac zum Drucken nicht mehr braucht. Ausnahme:
Exotische oder uralte Drucker, für die es sinnvolle Ansteuerung nur
mittels eines echten GhostScript-"built in"-Treibers gibt (wie im Falle
Deines Canon und GS' bjc600-Device)

Gruss,

Thomas

[1] Siehe bspw. <http://gutenprint.sourceforge.net/developer-html/c1717.html>

[2] <http://en.wikipedia.org/wiki/Advanced_Function_Presentation>
Loading...