CUPS Grundlagen

Die Drucker-Verwaltung unter Linux ist das Common Unix Printer System CUPS (wiki) [git], welche i.d.R. in jedem Linux Desktop-System bereits vorinstalliert ist. CUPS unterstützt 2D (Papier) und ab V2.1 auch 3D Druck (s.a IPP 3D). Wie das System in CUPS bereits andeutet handelt es nicht um einen schlichten Drucker Treiber sondern um ein Druck-System, das Dienste rund um das Thema „Drucken“ im Netzwerk bereit stellt. Auf Server Systemen ist CUPS ggf. noch nicht installiert, kann aber recht einfach installiert werden:

sudo -H apt-get install cups cups-client cups-bsd

CUPS wird grundsätzlich immer als Dienst (http://localhost:631) eingerichtet, d.h. es läuft nicht im Kontext eines bestimmten Benutzers, sondern kann von allen Benutzern des Systems genutzt werden (logisch).

Die Idee von CUPS ist, dass alle Drucker (-Funktionen) in einem Dienst, auf einem Host (dem zentralen CUPS Server) vereint werden. Die Clients (Desktop Systeme, mobile Geräte etc.) können über den zentralen CUPS Server ihre Druck-Anforderungen abwickeln, ohne das dazu auf jedem dieser Geräte ein Druckertreiber oder eine spezielle Druckfunktion installiert werden muss.

Im Kapitel „Netzwerk-Drucker Setup“ wird der Umgang mit der GUI (system-config-printer ) beschrieben. Dort wird auch erläutert, dass nur Nutzer der Gruppe lpadmin Änderungen an den Druckereinstellungen vornehmen können, weshalb man sich selbst am besten noch zu der Gruppe lpadmin hinzufügt:

$ sudo -H gpasswd -a <benutzername> lpadmin
$ sudo -H gpasswd -a <benutzername> lp

Gespeichert werden die Druckereinstellungen in den PPD Dateien, siehe Kapitel „Die kleine PPD Fibel“.

CUPS-Backend

Im Backend des CUPS, werden die Druckertreiber registriert. Da bietet CUPS z.T. generische Treiber an, die i.d.R. schon sehr gut funktionieren. Alle halbwegs modernen Netzwerk-Drucker unterstützen das IPP, welches auch in CUPS integriert ist, darauf basierend wird dann auch „driverless printing“ in CUPS ermöglicht.

CUPS-Filter

Vor dem Backend, also auf dem Weg hin zu den Druckern gibt es sogenannte CUPS-Filter, welche die Druck-Daten der Clients so aufbereiten, das der Drucker sie verarbeiten kann (siehe auch Kapitel „Druckausgabe in Datei“).

Hier in diesem Artikel wird beispielsweise ein Canon Drucker eingerichtet, der bietet zwar das IPP, spricht aber weder Postscript (wiki) noch PDF. Als Seitenbeschreibungssprache PDL (wiki) kennt der nur UFR-II (MF623Cn: technische Angaben). Im Kapitel „IPP & IPP Everywhere“ wird erläutert, wie mit dem image/pwg-raster Format (das alle IPP-fähigen Drucker anbieten müssen) dennoch auf diesem Drucker mittels CUPS Filter und einem generischen Druckertreiber gedruckt werden kann.

Bemerkung

CUPS (git) wird von Apple entwickelt, mit der Version 1.6. hat sich Apple entschieden einige der Funktionen (CUPS-Filter) zu entfernen, die in auf macOS nicht genutzt werden. Die Weiterentwicklung dieser Komponenten findet nun im cups-filters Projekt statt. Auf einem Linux Desktop ist das Paket cups-filters i.d.R. bereits installiert:

sudo -H apt install cups-filters

Das Kommando cupsfilter mit dem auch Tests vorgenommen werden können [ref] gehört zu den Basis-Kommandos und ist nach wie vor im CUPS (git) resp im Paket cups enthalten .