CUPS – Terminologie für Drucken und Scannen

Brandon Nielsen, Zdenek Dohnal Version F31 onwards Last review: 2021-06-16

Drucken

Druckerwarteschlange

Die Abstraktionseinheit in CUPS für einen Drucker verfügt über eine Geräte-URI, die die Verbindung zum Gerät repräsentiert, und kann mit einem klassischen Treiber (PPD-Datei aus einem anderen Paket) oder ohne (treiberloses Drucken) existieren. Die Einträge in den Druckdialogen und -einstellungen sind diese Druckerwarteschlangen. Sie können permanent oder temporär sein.

Permanente Druckerwarteschlangen

Die Warteschlangen mit klassischem Treiber oder treiberloser Druckerwarteschlange, die weiter unten im Netzwerk gemeinsam genutzt werden müssen.

Temporäre Druckerwarteschlangen

Die Druckwarteschlange, die nicht installiert werden muss – sie erscheint im Druckdialog und verschwindet nach erfolgreichem Druckvorgang. Sie basiert auf treiberlosem Drucken.

Remote-CUPS-Warteschlange

Diese Warteschlange befindet sich auf einem anderen Rechner, auf dem ein anderer CUPS-Prozess läuft, als der auf dem lokalen Rechner. Solche Warteschlangen werden üblicherweise in Unternehmenslösungen eingesetzt, in denen sich die Drucker nicht im selben Netzwerk wie die Benutzer befinden oder wenn der Administrator eine zentrale Überwachung aller Drucker wünscht. In solchen Lösungen konfigurieren Benutzer cups-browsed, um ferne CUPS-Warteschlangen über die BrowsePoll-Direktive als lokale Warteschlangen zu installieren, oder sie installieren eine bestimmte Warteschlange über GNOME. Es gibt möglicherweise eine Lösung, um mDNS-Meldungen, die der CUPS-Server an die Netzwerke mit den Benutzern sendet, umzuleiten, aber ich habe dies noch nicht korrekt eingerichtet.

Klassische Treiber

Dabei handelt es sich um Binärdateien und PPD-Dateien, die für den Betrieb des Geräts installiert werden müssen. Dies ist eine ältere Methode zur Geräteunterstützung, die in Zukunft nicht mehr benötigt wird.

Treiberloses Drucken (drahtlos oder über Ethernet)

Die meisten modernen Geräte (ab 2010) unterstützen die Standards AirPrint, Mopria oder IPP Everywhere und benötigen daher keinen klassischen Treiber mehr zum Drucken. Diese Geräte verfügen über IPP (Internet Printing Protocol) 2.0+, können sich über mDNS anmelden und unterstützen Dokumentformate wie PDF, PCLm, JPEG, Apple Raster und PWG Raster.

Es gibt mehrere Voraussetzungen, die im Betriebssystem erfüllt sein müssen, um Zugriff auf die treiberlose Funktionalität zu haben:

  • avahi-daemon muss laufen

  • Es muss ein '.local'-Adressauflöser aktiv sein - systemd-resolved oder nss-mdns

  • Das Gerät selbst muss einen IPP-Port (631) haben und Bonjour/MDNS muss aktiviert sein

  • IPP und MDNS müssen in der Firewall aktiviert werden

Wie das treiberlose Drucken unter der Haube funktioniert (einfach ausgedrückt):

  • CUPS entdeckt den Drucker in mDNS-Meldungen über Avahi

  • CUPS ermittelt die Druckerfähigkeiten über IPP

  • Wenn ein Druckauftrag vorliegt, richtet CUPS die Filterkette ein, um die eingehende Datei in ein Dokumentformat zu konvertieren, das der Drucker versteht (Apple Raster, PDF, PWG Raster, PCLm, JPEG)

Falls erforderlich, wird die PPD-Datei entweder vom PPD-Generator in CUPS oder von der driverless-Binärdatei generiert.

Eine der Funktionen, die treiberloses Drucken nutzen, sind temporäre CUPS-Warteschlangen.

Lesen Sie im Handbuch nach, wie Sie überprüfen können, ob Ihr Drucker treiberloses Drucken unterstützt.

Drucken mit einem Treiber

Dieses Druckverfahren ähnelt dem treiberlosen Drucken insofern, als eine Filterkette eingerichtet werden muss, aber:

  • Es kann die mDNS- und IPP-Funktionalität nur eingeschränkt oder überhaupt nicht nutzen

  • Alle Informationen zu den Gerätefähigkeiten stammen aus der PPD-Datei (PostScript Printer Description)

  • spezielle Filter und eine spezielle Kommunikation mit dem Gerät können genutzt werden (abhängig vom Treiber)

Die Nachteile dieses Ansatzes sind die Abhängigkeit von Drittanbietertreibern, die Notwendigkeit, stets eine permanente Warteschlange dafür zu installieren, und dass dieser in Zukunft gar nicht mehr benötigt wird.

Rohewarteschlange

Beim Drucken in eine solche Warteschlange werden von CUPS keine Filter gestartet, die Daten werden unverändert an das Ziel gesendet und es werden keine Optionen von CUPS angewendet – unabhängig vom Format des eingehenden Dokuments. Die zum Drucken verwendete Anwendung muss druckfertige Daten (im korrekten Format und mit allen gewählten Optionen) senden, oder das Ziel muss auf die gewünschten Einstellungen konfiguriert sein (z.B. Drucker/Druckserver für beidseitigen Duplexdruck mit Graustufeneinstellungen, so dass jedes gedruckte Dokument diese Einstellungen aufweist und der Benutzer sie nicht in einer Anwendung ändern kann).

Diese Vorgehensweise wird üblicherweise für das Drucken auf älteren Etikettendruckern über eine spezielle Anwendung oder, in der Vergangenheit, für das Drucken an eine ferne CUPS-Warteschlange verwendet. Da CUPS keine Möglichkeit bietet, eine einheitliche Benutzererfahrung (Abrufen von Druckereigenschaften, Konvertieren verschiedener Dokumentformate in ein vom Drucker akzeptiertes Format, Festlegen von Druckoptionen) für solche Warteschlangen bereitzustellen, ist deren Verwendung veraltet und wird in CUPS 3.X entfernt.

Rohdruck

Der Rohdruck erfolgt, wenn CUPS eine Datei in einem vom Drucker direkt akzeptierten Dokumentformat empfängt und das Format anhand der Regeln seiner MIME-Datenbank erkennt. Der CUPS-Daemon startet für einen solchen Auftrag keine Filter (er kann jedoch Optionen in ein IPP-Paket einbetten, falls die Verbindung zum Drucker über IPP erfolgt). Eine Ausnahme bilden PDFs: Hier wird der Filter pdftopdf gestartet, um allgemeine Einstellungen wie Skalierung, Drehung usw. anzuwenden. Der Rohdruck selbst findet sowohl in Druckerwarteschlangen mit klassischem Treiber als auch in treiberlosen Druckerwarteschlangen statt. Diese Funktionalität ist in CUPS 3.X weiterhin verfügbar.

Der Unterschied zwischen Rohdruck und Rohwarteschlange besteht darin, dass Rohdruck eine Situation ist, die eintritt, wenn der CUPS-Daemon eine Datei in einem vom Drucker akzeptierten Format erhält. In diesem Fall erzeugt der Daemon keine zusätzlichen Filter für einen solchen Auftrag (mit Ausnahme von PDF) und erzeugt Filter für Dokumentformate, die vom Drucker nicht direkt akzeptiert werden. Die Rohwarteschlange hingegen ist eine Warteschlange, in der der CUPS-Daemon unter keinen Umständen Filter erzeugt und sich wie eine Unix-Pipeline verhält.

Druckanwendungen

Die Binärdateien, die Unterstützung für ältere Geräte bieten, die nicht zu den Standards für treiberloses Drucken kompatibel sind. Sie akzeptieren den alten Treiber und melden sich anschließend als treiberloses Druckgerät an. Das neue CUPS erkennt diese Geräte, und Benutzer können über sie drucken, als wären es temporäre Warteschlangen. Die aktuell in Fedora verfügbaren Druckeranwendungen sind ippeveprinter (Bestandteil von CUPS – siehe Paket cups-printerapp) und lprint (unterstützt Geräte, die Rohdatendruck benötigen – hauptsächlich Etikettendrucker). Andere Druckeranwendungen wie ps-printer-app, ghostscript-printer-app, hplip-printer-app und gutenprint-printer-app sind derzeit als SNAPs verfügbar, bis cups-filters 2.0 veröffentlicht und paketiert wird. Mit Ausnahme von ippeveprinter sind diese Druckeranwendungen mit der PAPPL-Bibliothek geschrieben und bieten daher sowohl eine Befehlszeilenschnittstelle (CLI) als auch eine Weboberfläche zur Interaktion mit den Benutzern.

Treiberloses Drucken (USB)

Treiberloses Drucken ist auch für Geräte möglich, die über USB angeschlossen sind – dies wird durch den Standard „IPP over USB“ abgedeckt. Um es zu nutzen, benötigen Sie das Paket „ipp-usb“, das das Gerät bei Avahi auf localhost registriert. Anschließend wird das USB-Gerät als WLAN-/Ethernet-Gerät erkannt. Die Erkennung und der Druckvorgang entsprechen denen eines WLAN-/Ethernet-Geräts mit treiberloser Unterstützung.

Schauen Sie im Handbuch nach, wie Sie prüfen können, ob IPP-over-USB verfügbar ist.

Scannen

Klassisches Scannen (über hplip und sane-backends)

Das klassische Scannen funktioniert über Backends, also Binärdateien zur Kommunikation mit dem Gerät. Es gibt verschiedene Backends, die üblicherweise durch Reverse Engineering der Kommunikation zwischen Scanner und Windows-Treiber erstellt werden. Keines der klassischen Backends implementiert ein Protokoll, das mit den meisten verfügbaren Geräten kompatibel ist.

Treiberloses Scannen

Das treiberlose Scannen nutzt die Backends sane-escl (nicht in Fedora integriert) und sane-airscan zur Kommunikation mit neueren Geräten. Diese neueren Geräte unterstützen üblicherweise eSCL (basierend auf dem AirScan-Protokoll von Apple) oder WSD (Web Services for Devices von Microsoft), die von sane-airscan genutzt werden können.

Für das Scannen über USB gelten dieselben Anforderungen wie für das Drucken. Das Gerät muss den treiberlosen IPP-Standard über USB unterstützen, und das Paket ipp-usb muss installiert sein, um treiberloses Scannen über USB zu ermöglichen. Dieses Paket ist erforderlich, da es eine treiberlose Schnittstelle über die USB-Schnittstelle erstellt, die sane-airscan für die treiberlose Kommunikation mit dem Gerät nutzt.