Druckertreiber¶
Im Backend bietet CUPS z.T. generische Treiber für die Drucker-Hersteller an, die i.d.R. schon sehr gut funktionieren. Wie bereits beschrieben, unterstützen alle halbwegs modernen Netzwerk-Drucker bereits das IPP Everywhere. Darüber ist es CUPS möglich driverless-printing anzubieten. Für den MF623Cn gibt es einen proprietären Treiber von Canon als auch einen generischen Treiber für Canon Drucker. Es sollen beide Treiber engerichtet und deren Druck-Ergebnisse miteinander verglichen werden.
driverless printing¶
Über das driverless-printing CUPS müsste in einer Standard Installation des
Ubuntu (18.04) resp. Debian Desktop Systems (mit CUPS) einem der IPP fähige
Drucker bereits im Setup unter „Geräte“ angeboten werden. Alternativ kann man
in den Druckereinstellungen auch auf „Zusätzliche Druckereinstellungen“
drücken womit das Programm system-config-printer
gestartet wird.
In dem Fenster kann man Hinzufügen klicken und über einen geführten Dialog den Drucker einrichten. Eine detallierte Anleitung findet sich in Kapitel „Netzwerk-Drucker Setup“. Hier beim MF623Cn musste die generisch erzeugte PPD Datei aus genannten Gründen angepasst werden:
Für MF623Cn angepasste PPD: CNMF620C Series, driverless (PPD modified)
Bemerkung
Den driverless Drucker sollte man als erstes testen. Mit einem modernen
PDF-fähigen (oder PS-fähigen) Drucker (application/pdf
) von einem
Hersteller, der IPP Everywhere beherrscht wird man i.d.R. schon sehr
respektable Erzeugnisse anfertigen können.
Beim MF623Cn gibt es allerdings noch einige Kinderkrankheiten, die z.T. auch schon beschrieben wurden. In solchen Fällen gibt es zwei Möglichkeiten.
- Entweder
man installiert sich den proprietären Druckertreiber des Herstellers, siehe Kapitel „MF620C-Serie URF-II (MF623Cn)“.
- oder
man steigt etwas tiefer in die Materie CUPS und CUPS-Filter und ggf. IPP ein und richtet sich eine eigene PPD-Datei ein, resp. ändert die bestehende PPD. Hier im Beispiel musste der Wert für HWMargins in der PPD korrigiert werden. Hier noch ein paar Verweise, die dabei ggf. Information bieten können:
MF620C-Serie URF-II (MF623Cn)¶
Sofern für Linux vorhanden, kann man sich auch mal die Druck-Ergebnisse mit dem proprietären Treiber vom Hersteller anschauen. Doch ACHTUNG: wie im Kapitel „Druckbild Canon VS driverless“ gezeigt, kann der Treiber vom Hersteller auch mal gewaltig schlechter sein als der generische Druckertreiber von CUPS. Zumindest bei Canon noch ein weiteres Problem; die Softwarepakete von Canon für Linux installieren jede Menge Schrott der nicht funktioniert und bestenfalls nicht noch andere Problem mit sich zieht. Es ist schon eine ziemliche Unverschämtheit, was Canon seinen Kunden für eine schrottige Software zur Installation anbietet und das ziehen die schon seit Jahren „so“ durch.
Die moderneren Canon Drucker unterstützen Ultra Fast Renderer (UFR) welches man sich über einen proprietären Treiber auch auf dem PC installieren kann. Die Linux Treiber für die Drucker der MF620C Serie gibt es bei Canon:
Dort sind auch Installationsanleitungen gegeben, diesen sollte man nicht
folgen: Die Linux Pakete von Canon sind schon immer dafür bekannt, diversen
Schrott zu installieren. Das gilt sowohl für die Druck- als auch für die
SCAN- Funktionen. Es empfiehlt sich von daher nur die nötigsten Sachen (die
binären Treiber und die PPDs) aus dem Treiber-Download zu installieren. In den
linux-UFRII-drv-v{xxx}-uken.tar.gz
Archiven gibt es zwei, max. drei Pakete
die man installieren muss, mehr bitte nicht:
cndrvcups-common_{4.10}-1_amd64.deb
cndrvcups-ufr2-uk_{3.70}-1_amd64.deb
cndrvcups-utility_{1.10}-1_amd64.deb
(funktioniert i.d.R nicht)
Die .tar.gz
Datei im Download-Ordner auspacken (über rechte Maustaste „Hier
entpacken“). In dem dann angelegten Ordner muss man sich etwas nach unten
durchklickern: 64-bit_Driver/Debian
. Dort sieht man dann auch schon die
Debian Pakete mit der
Dateiendung .deb
. Diese kann man mit einem Doppelklick einfach
installieren.
Leider ist die Installation damit nicht erledigt, da Canon seit jeher unfähig
ist, echte 64-bit Bibliotheken zu compilieren: in den mit amd64
gekennzeichneten Paketen ist der UFRII-Closed-Source-Treiber in Form von
32-Bit Bibliotheken enthalten, die wiederum auf anderen 32-Bit Bibliotheken des
Betriebssystems aufbauen. Welche aber auf dem (eigenen) 64-Bit Betriebssystem
i.d.R. nicht zu erwarten sind.
Normalerweise kann der Paket-Ersteller solche Abhängigkeiten in den .deb
Dateien beschreiben und dann würde der Paket-Manager darauf reagieren können,
aber auch dazu ist Canon als Paket-Ersteller seit jeher nicht in der Lage. Mit
dem Effekt, dass der Anwender mal wieder Blutdruck bekommt, weil Drucken nicht
funktioniert, es aber er auch keine hilfreichen Fehlermeldungen gibt.
Diese Abhängigkeiten zu den 32-Bit Bibliotheken müssen wir manuell installieren (i.d.R. muss man das auch, wenn man die Installation-Anweisungen von Canon befolgen würde). Man installiert daher zuerst die benötigten 32-Bit Bibliotheken:
sudo -H apt-get install lib32stdc++6 libxml2:i386
Bei moderneren Druckern, sollte der Drucker nun automatisch gefunden und eingebunden werden. Falls das bei dem eigenen Drucker noch nicht klappt, sollte man mit dem Netzwerk-Drucker Setup fortfahren.
Auch die PPD, die Canon mit dem Treiber ausliefert ist ziemlich lieblos zusammengeschustert weshalb ich eine selbst-erstellte bevorzuge:
Für MF623Cn angepasste PPD (URFII): Canon MF620C Series UFRII LT
Druckbild Canon VS driverless¶
Hier ein Vergleich des Druckbilds des All-in-One Drucker MF623Cn, einmal mit dem origignal Canon URF-II Treiber (links) und dem driverless-printing (rechts). Es sind die Druckbilder, die man bekommt, wenn man nichts an den PPD Dateien geändert hat.
Das Bild unten zeigt den rechten-oberen Ausschnitt eines A4-Drucks, bei dem oben in der Ecke ein QR-Code (wiki) gedruckt werden sollte.
Links sieht man, dass der Original Canon Treiber zwar bis in die Ecken druckt aber den QR-Code im PDF nur zerstört ausdruckt. Bei genauerer Betrachtung (nicht im Bild zu erkennen) stellt man auch fest, dass der original Treiber nicht farbecht ist. Mir erscheint der ganze Ausdruck wie ein kaputtes JPEG, die Farben sind nicht echt und das der QR Code auch noch zerstört wird, mag evtl. auch an einer (JPEG) Komprimierung liegen.
Der Druck über den Drucker des driverless-printing (rechts im Bild) zeigt das Problem, dass er nicht bis in die Ecken drucken kann, dafür wird aber der QR-Code nicht zerstört, was im Fall von Fahrkarten wichtiger sein wird. Bei genauerer Betrachtung (nicht im Bild zu erkennen) hat man den Eindruck, dass der Druck Farbecht ist, jedoch scheint die Auflösung und Farbtiefe nicht ganz ausgereizt zu werden.
Bemerkung
Der Rand beim driverless Druck konnte durch setzten der Rahmen des
ImageableArea
auf 0 0 ...
korrigiert werden (siehe
Druckbereich korrigieren).
Debug LOG der Druckerzeugnisse¶
Debug-LOG für den driverless-printing Druck (rechts):
D [11/Feb/2019:14:39:00 +0100] [Job 82] 4 filters for job:
D [11/Feb/2019:14:39:00 +0100] [Job 82] pdftopdf (application/pdf to application/vnd.cups-pdf, cost 66)
D [11/Feb/2019:14:39:00 +0100] [Job 82] gstoraster (application/vnd.cups-pdf to image/pwg-raster, cost 99)
D [11/Feb/2019:14:39:00 +0100] [Job 82] - (image/pwg-raster to printer/CNMF620C-Series/image/pwg-raster, cost 0)
D [11/Feb/2019:14:39:00 +0100] [Job 82] - (printer/CNMF620C-Series/image/pwg-raster to printer/CNMF620C-Series, cost 0)
D [11/Feb/2019:14:39:00 +0100] [Job 82] job-sheets=none,none
D [11/Feb/2019:14:39:00 +0100] [Job 82] argv[0]="CNMF620C-Series"
D [11/Feb/2019:14:39:00 +0100] [Job 82] argv[1]="82"
D [11/Feb/2019:14:39:00 +0100] [Job 82] argv[2]="markus"
D [11/Feb/2019:14:39:00 +0100] [Job 82] argv[3]="8B653235.pdf"
D [11/Feb/2019:14:39:00 +0100] [Job 82] argv[4]="1"
D [11/Feb/2019:14:39:00 +0100] [Job 82] argv[5]="InputSlot=Auto print-content-optimize=auto PageSize=A4 number-up=1 MediaType=Auto noCollate print-scaling=auto ColorModel=RGB job-uuid=urn:uuid:81164725-dc83-35d0-4be7-2588d85eefc4 media=0 job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1549892340 time-at-processing=1549892340"
D [11/Feb/2019:14:39:00 +0100] [Job 82] argv[6]="/var/spool/cups/d00082-001"
Debug-LOG für den Canon URF-II Treiber Druck (links):
D [11/Feb/2019:14:32:00 +0100] [Job 81] 3 filters for job:
D [11/Feb/2019:14:32:00 +0100] [Job 81] pdftopdf (application/pdf to application/vnd.cups-pdf, cost 66)
D [11/Feb/2019:14:32:00 +0100] [Job 81] pdftops (application/vnd.cups-pdf to application/vnd.cups-postscript, cost 100)
D [11/Feb/2019:14:32:00 +0100] [Job 81] pstoufr2cpca (application/vnd.cups-postscript to printer/MF623C-TWF19694, cost 0)
D [11/Feb/2019:14:32:00 +0100] [Job 81] job-sheets=none,none
D [11/Feb/2019:14:32:00 +0100] [Job 81] argv[0]="MF623C-TWF19694"
D [11/Feb/2019:14:32:00 +0100] [Job 81] argv[1]="81"
D [11/Feb/2019:14:32:00 +0100] [Job 81] argv[2]="markus"
D [11/Feb/2019:14:32:00 +0100] [Job 81] argv[3]="8B653235.pdf"
D [11/Feb/2019:14:32:00 +0100] [Job 81] argv[4]="1"
D [11/Feb/2019:14:32:00 +0100] [Job 81] argv[5]="noCNDraftMode BindEdge=Left OutputBin=Auto number-up=1 noCollate CNBarCodeMode=None PageSize=A4 InputSlot=Auto CNSpecialSmooth=Mode1 CNColorMode=color CNColorHalftone=Resolution MediaType=Auto CNHalftone=Resolution job-uuid=urn:uuid:1fb4ea86-8cb1-380d-60a9-4f211deae89e print-quality=3 job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1549891920 time-at-processing=1549891920 cupsPrintQuality=Draft"
D [11/Feb/2019:14:32:00 +0100] [Job 81] argv[6]="/var/spool/cups/d00081-001"