Layer 8Ehrlicher Tech-Support

Drucker druckt Zeichensalat statt Text

Statt des Dokuments kommen Seiten voller kryptischer Zeichen — oft im Dutzend. Der Drucker liest die Daten in der falschen Sprache und merkt es nicht.

Aufwand:
ca. 25 Min.
Voraussetzung:
Terminal unter Linux oder macOS, Root-Rechte für Änderungen an der Warteschlange, Zugriff auf die Druckerwarteschlange unter Windows
Gilt für:
Linux mit CUPS, macOS, Windows 10 und 11

Das Symptom

Sie drucken eine Seite. Heraus kommen achtzehn. Auf jeder stehen ein paar Zeilen kryptischer Zeichen — Prozentzeichen, Klammern, Buchstabenfolgen ohne Sinn, vielleicht ein erkennbares Wort wie ein Schriftartname dazwischen. Der Rest der Seite ist leer. Das Gerät arbeitet dabei zufrieden weiter und wirkt völlig unbeeindruckt davon, dass es gerade das halbe Papierfach für nichts verbraucht.

Die „Layer 8“-Wahrheit

Ein Drucker versteht keine Dokumente. Er versteht eine Sprache — meist PostScript, PCL oder ein herstellereigenes Format — und rechnet das, was in dieser Sprache ankommt, in Punkte auf Papier um. Ihr Rechner erzeugt diese Sprache erst, und zwar im Treiber. Was Sie hier sehen, ist das Ergebnis eines Missverständnisses zwischen diesen beiden: Der Rechner spricht die eine Sprache, das Gerät versteht die andere, und weil beide sich für zuständig halten, fragt niemand nach.

Das Bemerkenswerte ist, dass das Protokoll diesen Fall kennt und sauber regelt. RFC 8011 schreibt vor, dass ein Drucker eine Anfrage ablehnen muss, wenn das gelieferte Dokumentformat nicht zu den unterstützten gehört — mit einem eigenen Statuscode dafür. Es gibt also einen vorgesehenen, höflichen Weg, hier Nein zu sagen. Dieser Weg wird nur nicht beschritten, wenn die Warteschlange die Daten unverändert durchreicht, statt sie als Auftrag mit Formatangabe zu übergeben. In CUPS heißt eine solche Warteschlange raw, und die Handbuchseite sagt offen, was das bedeutet: Jede vorhandene Treiberbeschreibung wird entfernt. Damit fällt auch die Prüfung weg, die den Unsinn verhindert hätte.

Selbst dort, wo der Standard den Drucker das Format selbst erkennen lässt, ist er ehrlich über die Grenze: Beim Selbsterkennen kann ein Drucker feststellen, dass er das Format nicht kennt — kann, nicht muss. Merkt er es erst nach der Annahme, trägt er das nachträglich bei den Auftragsgründen ein. Merkt er es nie, druckt er weiter. Und ein Gerät, das gerade in seinen einfachen Textmodus gefallen ist, merkt es garantiert nie: Für einen Textinterpreter ist eine Steuersequenz kein Befehl, sondern eine Zeichenkette. Er setzt sie hin. Trifft er dabei auf ein Zeichen für den Seitenvorschub, wirft er das Blatt aus und macht auf dem nächsten weiter. Deshalb kommen nicht ein paar wirre Zeilen heraus, sondern ein Stapel.

Der Drucker macht hier also nichts falsch. Er tut exakt das, was man ihm gesagt hat, in einer Sprache, in der man ihm eigentlich etwas anderes sagen wollte. Und er wird damit nicht von selbst aufhören — solange Papier im Fach liegt, hat er keinen Grund dazu. Deshalb beginnt die Reparatur nicht mit dem Treiber, sondern mit der Abbruchtaste.

Die echte, verifizierte Lösung

1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:

  1. 1.

    Den Auftrag zuerst stoppen

    Solange das Gerät druckt, ist jede Analyse Papierverschwendung. Die CUPS-Handbuchseite beschreibt den Schalter als Abbruch aller Aufträge am genannten Ziel; ein zweiter Schalter löscht zusätzlich die Auftragsdaten und heißt dort -x. Danach am Gerät gegebenenfalls den Puffer leeren — die meisten Drucker haben dafür eine Abbruchtaste; wie sie heißt, steht im Handbuch des Modells.

    cancel -a Drucker
    
  2. 2.

    Nachsehen, worüber überhaupt gedruckt wird

    Der nächste Schritt klärt den Weg zum Gerät. Die Handbuchseite beschreibt den Schalter als Anzeige der Drucker und der Geräte, an die sie angeschlossen sind. Steht dort ein Netzwerkanschluss, während im Treiber ein ganz anderes Modell hinterlegt ist, haben Sie die Ursache bereits gefunden. Ergänzend zeigt lpoptions die druckerspezifischen Optionen und ihre aktuellen Werte — bleibt diese Liste auffällig leer, spricht das für eine Warteschlange ohne Treiberbeschreibung.

    lpstat -v
    lpoptions -p Drucker -l
    
  3. 3.

    Eine Warteschlange ohne Treiber erkennen

    Der häufigste Auslöser ist eine Warteschlange, die überhaupt nicht umwandelt, sondern durchreicht. In CUPS heißt dieses Modell schlicht raw, und die Handbuchseite sagt dazu unmissverständlich, dass es jede vorhandene PPD-Datei entfernt. Eine solche Warteschlange schickt dem Gerät exakt das, was die Anwendung erzeugt hat — was großartig ist, wenn das Gerät diese Sprache spricht, und genau dieses Symptom erzeugt, wenn nicht.

  4. 4.

    Den passenden Treiber ermitteln

    Welche Treiberbeschreibungen der Server kennt, listet lpinfo auf; die Handbuchseite nennt die eine Form als Auflistung der verfügbaren Treiber und bietet einen Filter nach Hersteller und Modell an. Wichtig für die Erwartungshaltung: Dieselbe Handbuchseite hält ausdrücklich fest, dass CUPS-Druckertreiber und -Backends als veraltet gelten und in einer künftigen Version nicht mehr unterstützt werden. Für neuere Netzwerkdrucker ist der Weg über IPP der vorgesehene.

    lpinfo -m
    
  5. 5.

    Die Warteschlange auf den richtigen Weg setzen

    Für moderne Netzwerkdrucker beschreibt die Handbuchseite ein eigenes Modell: everywhere befragt den Drucker, auf den die angegebene IPP-Adresse zeigt, und leitet die Fähigkeiten daraus ab. Das ist der Weg, der den Formatstreit an der Wurzel beendet, weil beide Seiten dieselbe Auskunft verwenden. Die Adresse des Geräts steht auf seinem Display oder in der Netzwerk-Statusseite.

    sudo lpadmin -p Drucker -v ipp://drucker.local/ipp/print -m everywhere
    
  6. 6.

    Die Fehlerpolitik so setzen, dass ein Formatfehler nicht das Gerät blockiert

    Damit der nächste Formatkonflikt nicht die ganze Warteschlange lahmlegt, lohnt ein Blick auf die Fehlerpolitik. Die Handbuchseite beschreibt sie als Regel für Fehler wie Drucker, die nicht gefunden werden, die das gedruckte Format nicht unterstützen oder bei denen die Übergabe der Druckdaten scheitert — und nennt als Standardwert für Drucker das Anhalten des Geräts. Wer stattdessen den Auftrag verwerfen lassen will, setzt es ausdrücklich.

    sudo lpadmin -p Drucker -o printer-error-policy=abort-job
    
  7. 7.

    Unter Windows die Warteschlange neu aufbauen

    Unter Windows gibt es kein raw-Modell zum Nachsehen, dafür denselben Auslöser in anderer Form: eine Warteschlange mit dem Treiber eines fremden Modells, meist durch automatische Einrichtung entstanden oder aus einer alten Installation übriggeblieben. Die belastbare Reparatur ist hier keine Einstellung, sondern ein Neuanfang: die vorhandene Warteschlange entfernen, das Gerät neu hinzufügen und dabei den Treiber des tatsächlichen Modells wählen. Eine Warteschlange mit dem falschen Treiber ist kein Besitz, den man erhalten müsste.

Häufige Fragen (FAQ)

?Warum kommen Seiten voller kryptischer Zeichen heraus?

Weil das Gerät die geschickten Daten in der falschen Sprache liest. Ein Drucker versteht nur bestimmte Dokumentformate, und das Internet Printing Protocol regelt den Fall ausdrücklich: Schickt ein Client ein Format, das der Drucker nicht unterstützt, „the Printer MUST reject the request and return the ‚client-error-document-format-not-supported‘ status-code“. Genau diese Prüfung fällt aber aus, wenn die Warteschlange die Daten unverändert durchreicht. Dann bekommt das Gerät Steuerbefehle einer fremden Seitenbeschreibungssprache, hält sie für Text und setzt sie brav Zeichen für Zeichen — inklusive der Seitenvorschübe, die darin stecken. Das erklärt auch die Menge.

?Warum meldet niemand einen Fehler?

Weil an dieser Stelle niemand mehr prüft. RFC 8011 kennt sogar den Fall, dass ein Drucker das Format selbst erkennen soll, und beschreibt dessen Grenze offen: „During auto-sensing, a Printer can determine that the Document data has a format that the Printer doesn't recognize.“ Merkt er es erst nach der Annahme, trägt er laut Standard den Wert unsupported-document-format bei den Auftragsgründen nach. Merkt er es gar nicht — und ein einfacher Textinterpreter merkt es nie —, druckt er einfach das, was ankommt. Für ihn ist das kein Fehler, sondern ein sehr langes Dokument mit ungewöhnlichem Inhalt.

?Warum wirft er dabei so viele fast leere Seiten aus?

Weil in den Steuerdaten einer Seitenbeschreibungssprache regelmäßig Zeichen für den Seitenvorschub stecken. Werden diese Daten als Text gedruckt statt als Anweisungen ausgeführt, wirkt jeder dieser Vorschübe wie ein Befehl, das Blatt auszuwerfen — bei ein paar Zeilen Inhalt pro Seite. Wie viele Seiten dabei genau herauskommen, hängt vom Interpreter des jeweiligen Geräts ab und ist in keinem Standard festgelegt; hier endet die belegbare Auskunft. Verlässlich ist nur der Rat, den Auftrag abzubrechen, bevor das Papierfach leer ist.

Belege

Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.

Zuletzt geprüft am . Dokumentation altert – ein Datum daneben ist der einzige ehrliche Umgang damit.

Auch zu finden unter

Verwandte Fehler

HWDrucker

Drucker streikt bei fast leerer Patrone

Der Drucker verweigert den Dienst, weil eine Patrone fast leer ist. Was der Standard dazu sagt: Fast leer ist eine Warnung, kein Grund zum Anhalten.

SWDrucker

Ausdruck abgeschnitten oder verschoben

Unten fehlt eine Zeile, rechts ist alles abgeschnitten? Meist steht das Papierformat auf Letter statt A4 — oder die Skalierung rechnet dazwischen.