CUPS / IPPEverywhere

...und wie man ein Spooling-System mit eigenen Erweiterungen aufpeppt

Drucken gehört seit Jahrzehnten zu den "leidigen" Themen, mit denen ein System-Admin zu tun hat.

Wenn man's nicht muss, fasst man's nicht an.

Wenn man's denn doch anfassen muss, dann bloss, weil's irgendwie nicht mehr tut. Aber es doch wichtig ist...

Und wenn man's anfasst, ist man meist schnell verloren im Dickicht von Treibern, Druckermodellen, Software-Versionen, Foomatic-Gedöns, Filterketten, Logfiles, Ghostscript-Bugs und Neuinstallations-Gedanken.

Dieser Kurs ist nicht für jeden. Denn er fasst mitten rein ins Gestrüpp [*]....

Viele Anwender haben in den letzten 10 Jahren trotz aller Widrigkeiten den erfolgreichen Umgang mit CUPS gelernt. Die neueren CUPS-Versionen haben allerdings manche liebgewonnenen Features wieder abgeschafft bzw. deren End-of-Life vorangekündigt:

  • PostScript ist plötzlich nicht mehr das zentrale Druckjob-Datei-Format. PDF ist an seine Stelle getreten. Was hat es damit auf sich?
  • Apple hat angeblich, seit es sich CUPS einverleibt hat, alle Filter abgeschafft, die nur für Linux nützlich sind. Was ist an diesem Vorwurf dran?
  • Das beliebte "CUPS-Browsing" ist rausgeflogen. Es hatte erlaubt, dass CUPS_Clients "einfach so" drucken konnten -- und zwar mit allen Features! -- ohne dass sie eigens einen drucker-spezifischen Treiber installieren mussten. Gibt es dafür keinen Ersatz?!?
  • Die PPDs -- welche ja die technischen Eigenschaften eines spezifischen Ausgabe-Geräts auf standardisierte Weise im Einzelnen beschreiben und für die "Treiber" nutzbar machen -- stehen angeblich kurz vor ihrer "Abschaffung". Was soll das?!?

Neue Stichwörter geistern durch das Internet:

  • IPP Everywhere soll angeblich "treiberloses Drucken" ermöglichen. Was ist da dran?
  • Viele neuen Drucker-Modelle sollen angeblich PDF-Direktdruck beherrschen. Wie kann man das überprüfen?
  • "Bonjour"- und "Airprint"-Features scheinen so rein gar nichts mit CUPS zu tun zu haben, aber sehr viel mit iPad und iPhone. Ist das richtig? Bleiben Linux- und Android-Clients außen vor?

[*] Keine Angst, es wird aber nicht weh tun. Der Trainer teilt am ersten Tag dicke Schutzhandschuhe aus. Und am dritten Tag wird die jede[r] Teilnehmer[In] freiwillig wieder ablegen, weil er/sie dann weiss, wo er/sie was und wie anzufassen hat... >:-)

Spezial-Angebot des Trainers: Gibt es Kurs-Interessenten, die spezielle Wünsche und Fragen haben? Falls ja, dann können wir diese durchaus in einem eigenen Kursteil behandeln. Allerdings sollten wir dazu rechtzeitig Bescheid erhalten. Kontaktaufnahme baldmöglichst erbeten! Falls das Thema interessant und "verallgemeinerungs-fähig" genug ist, können wir den Kurs auch so zuschneiden, dass er das Thema auf eine Weise mit abdeckt, ohne es für die anderen Teilnehmer langweilig oder unergiebig zu machen.

Trainer und Dozenten

Kurt Pfeifle gehörte 1999 zu den ersten Alpha-Testern eines neuen Druck-, Spooling- und Jobfilterungs-Systems, welches sich ab 2001 anschickte, die Welt der unix-oiden Betriebssysteme zu erobern.

Auch in seinem Berufsleben hat er vorwiegend mit Drucken im Netzwerk zu tun. Obwohl er nie aktiv die Firma wechselte, gelangte er über die Stationen Kodak, Danka, Infotec zwischenzeitlich zur Ricoh Deutschland GmbH, weil der jeweils neue Arbeitgeber den vorhergehenden sich per Geschäftsfeld- oder Firmen-Übernahme einverleibt hatte.

Er...

  • ...gehört zu den Mit-Initiatoren der Website LinuxPrinting.org (zwischenzeitlich: OpenPrinting.org),
  • ...war aktiver Teilnehmer bei mehreren "OpenPrinting Summit"-Treffen, wo Entwickler aus der ganzen Welt aktuelle und künftige Entwicklungen rund um's Unix-Drucken thematisieren,
  • ...schrieb die beiden dicken Kapitel zum Thema Drucken im "Official Samba Howto Collection and Reference Guide",
  • ...und er beseitigt tagtäglich normale und un-normale Druck-Wehweh-chen seiner Kunden,
  • ...aber am liebsten sucht und findet er Lösungen für außergewöhnliche Probleme und "verrückte" Anforderungen seiner Kunden, deren Existenz oder Bedarf ihm nicht mal im Traume eingefallen wäre.

Voraussetzungen

Die Inhalte aus den Kursen

Inhalt

Grundlagen des Druckens

Wir bringen erstmal alle Teilnehmer auf einen gemeinsamen Nenner.

  • Datenformate
  • Protokolle
  • Konvertierungen
  • Treiber

Automatische Druckdaten-Konvertierungen durch CUPS-Filter

  • Wie stellt CUPS fest, welcher Datei-Typ angekommen ist?
  • Woher weiss CUPS, welcher Datei-Typ der Ziel-Drucker braucht?
  • Woher weiss CUPS, welcher Filter welche Arten der Daten-Konvertierung vollbringen kann?
  • Auf welche Weise verkettet CUPS die verschiedenen Filter zu einer Kette, damit am Ende immer ${endformat} (.z.B. PCL) rauskommt, egal, ob der Client vorne ein PDF, ein PostScript, ein PNG, einen Text oder ein TIFF reinkippt? Oder gar alle diese verschiedenen Formate innerhalb eines einzigen Druckjobs?!?

Welchen Weg nimmt ein Druckjob durch die CUPS-Komponenten?

Wir verfolgen "live" die Wege verschiedener Druckjobs durch die CUPS-Komponenten. Dabei lernen wir zugleich erste Troubleshooting-Techniken kennen. Diese werden wir im Laufe des Kurses immer weiter ausbauen.

  • cupsd.conf
  • error_log
  • access_log

Wie manipuliert man den Weg eines Druckjobs?

  • *cupsFilter:
  • PPD
  • mime.types
  • mime.convs
  • filters
  • backends

Wir schreiben unseren eigenen CUPS-Filter oder unser eigenes CUPS-Backend und binden ihn in das System ein

Hier können die Teilnehmer auswählen, was wir gemeinsam als Shellscript implementieren wollen. Eigene Vorschläge sind ebenfalls möglich. Z.B.:

  • Ein Filter, der alle Bilder aus der Druck-Datei entfernt.
  • Ein Filter, der die Seiten im Broschüren-Layout anordnet und ausschiesst.
  • Ein Filter, der um jede Seite einen dünnen Rahmen zeichnet.
  • Ein Filter, der zwangsweise ein gut sichtbares Wasserzeichen auf alle Seiten aufbringt.
  • Ein Filter, der fast unsichtbar an den Seitenrändern in sehr kleiner Schrift einige Meta-Daten des Druckjobs vermerkt: Datum, Uhrzeit, Job-ID, Benutzer, Job-Titel, Anzahl der gedruckten Kopien...
  • Ein Backend, welches einen Job neben dem Druck auf Papier zusätzlich als PDF archiviert.
  • Ein Backend, welches die erste Seite jedes Jobs zusätzlich auf einem separaten "Quittungs-Drucker" auf gelbem Papier ausdruckt.

Weitere mögliche Themen (bitte mit dem Kursleiter Kontakt aufnehmen):

  • Treiber-Optimierung
  • Ausfallsicherheit
  • Benutzerauthentifizierung und Accounting
  • Admin-User
  • Etikettendrucker
  • Was hat es mit dem von CUPS mitgelieferten ipptool auf sich?
  • Wie kann man auf einen Drucker, der PDF-Direktdruck beherrscht, Jobs so ausgeben, dass sie auch Features wie doppelseitigen Druck oder geheftete Sätze beherzigen?