Anmelden
Produkte
ZPL-VorschauBarcode-GeneratorBild → ZPLEtiketten-DesignerVorlagen-Galerie
Entwickler
API-SchnellstartAPI-ReferenzMCP-ServerMassenerzeugungWebhooksSDKs & BeispieleLimitsOn-Premise
Lösungen
Logistik und VersandE-CommerceERP & WMSProduktionEinzelhandelGesundheitswesen und LaborAlle Lösungen
Tools
ZPL-DiagnosezentrumZPL-DebuggerGrößen- und DPI-AnalyseDPI-KonverterDruckerkompatibilitätsprüfungBarcode-LesbarkeitsprüfungDruckersprachen-ErkennungThermodrucker-TestpaketZPL-ToolsEPL-ToolsTSPL-ToolsCPCL-ToolsAlle WerkzeugeRatgeberPreise
Sprache
EnglishTürkçeDeutsch
StartseiteRatgeberZPL unter macOS und Linux über eine CUPS-Raw-Queue drucken
Ratgeber › ZPL unter macOS und Linux über eine CUPS-Raw-Queue drucken

ZPL unter macOS und Linux über eine CUPS-Raw-Queue drucken

Veröffentlicht:

ZPL ist eine Druckersprache: Der Drucker selbst rendert sie. Unter macOS und Linux ist das Drucksystem CUPS — und CUPS tut normalerweise das Gegenteil dessen, was ein ZPL-Auftrag braucht: Es schickt jeden Auftrag durch Filter, die Dokumente in Druckerbefehle umwandeln. Ihr Auftrag ist bereits Druckerbefehle; die Warteschlange muss die Bytes unangetastet durchreichen. Genau das macht eine Raw-Warteschlange.

Die eine Regel: die Queue muss raw sein

Hängt an der Queue ein Treiber oder Filter, passiert eines von zwei Dingen: Der Filter weist den Auftrag ab, oder — das klassische Symptom — der Drucker druckt Ihren ^XA…^XZ-Quelltext als sichtbaren Text aufs Etikett. Das Etikett ist nicht kaputt; die Queue hat ZPL für ein Dokument gehalten. Im ZPL lässt sich das nicht beheben: Es ist eine Queue-Einstellung.

Raw-Queue anlegen

macOS wie Linux bringen lpadmin mit:

sudo lpadmin -p zebra-raw -E -v socket://192.168.1.50:9100 -m raw

-p benennt die Queue, -E aktiviert sie, -v ist die Geräte-URI (hier die IP des Druckers mit Raw-Port 9100), und -m raw heißt: kein Treiber, kein Filter. Für einen USB-Drucker zuerst mit lpinfo -v die URI ermitteln und die usb://…-Zeile verwenden.

Neuere CUPS-Versionen geben für Raw-Queues eine Deprecation-Warnung aus. Sie funktionieren weiterhin; die Warnung betrifft die künftige Richtung von CUPS, und die Direkt-Socket-Alternative unten hängt gar nicht von CUPS ab.

Etikett senden

lp -d zebra-raw etikett.zpl

Müssen Sie eine bestehende Queue mit Treiber verwenden, geht Durchreichen pro Auftrag: lp -d zebra -o raw etikett.zpl — eine eigene Raw-Queue ist aber schwerer falsch zu benutzen.

macOS-Hinweise

Die Druckerdialoge der Systemeinstellungen wollen einen Treiber oder AirPrint wählen — beides ist für Dokumente gedacht, nicht für rohes ZPL; legen Sie die Queue deshalb im Terminal mit lpadmin an. Wer eine Browser-Oberfläche mag: Das CUPS-Webinterface ist standardmäßig aus, cupsctl WebInterface=yes schaltet es ein, dann localhost:631 öffnen.

Queue prüfen

lpstat -p listet Queues und Zustand, lpstat -o wartende Aufträge, cancel -a räumt auf. Ein Auftrag mit Status "completed" heißt nur: CUPS hat die Bytes übergeben — wie bei Port 9100 selbst ist das kein Beweis für ein korrekt gedrucktes Etikett. Vor dem Senden das ZPL in den Online-Viewer einfügen: Papier kennt kein Zurück.

Wann Sie CUPS gar nicht brauchen

Für einen einmaligen Auftrag ist das direkte Senden an TCP-Port 9100 einfacher — keine Queue zu konfigurieren; siehe ZPL an einen Netzwerkdrucker senden. Was CUPS beisteuert, ist Spooling: benannte Queues, Reihenfolge, Wiederholungen, Berechtigungen. Teilen sich mehrere Personen oder Systeme einen Drucker, lohnt sich diese Schicht. Zur größeren Treiberfrage — alle drei rohen Wege und wann ein echter Treiber hilft — siehe ZPL ohne Treiber drucken.

Häufig gestellte Fragen

Warum druckt mein Zebra-Drucker den ZPL-Code als Text?

Weil an der CUPS-Queue ein Treiber oder Filter hängt, der den ZPL-Quelltext als Dokument behandelt. Die Queue raw anlegen (lpadmin mit -m raw) oder pro Auftrag -o raw übergeben; im ZPL selbst lässt sich eine Queue-Einstellung nicht beheben.

Brauche ich unter macOS oder Linux einen Treiber für ZPL?

Nein. Die Firmware des Druckers rendert ZPL selbst; die Queue muss die Bytes nur unangetastet durchreichen — genau das tut eine Raw-Queue in CUPS. Ein Treiber übersetzt Dokumente, und ein ZPL-Auftrag ist per Definition keines.

CUPS meldet Raw-Queues als deprecated — hört das auf zu funktionieren?

Raw-Queues funktionieren weiterhin; die Warnung betrifft die künftige Richtung von CUPS. Sollte es je ein Problem werden: Direktes Senden an TCP-Port 9100 hängt gar nicht von CUPS ab und erreicht dasselbe Durchreichen.

Verwandte Ratgeber

Was ist ZPL?

ZPL ist die Sprache der Zebra-Thermodrucker. Wie die Befehle zu lesen sind, wie ein Etikett aufgebaut wird und welche Fehler am häufigsten vorkommen.

Welche Barcode-Symbologie soll ich wählen?

EAN-13, Code 128 oder QR? Praktische Regeln für die Wahl des Barcodes nach Daten, Platz und Lesegerät.

ZPL-Datei ohne Drucker in der Vorschau ansehen

Eine ZPL-Datei ist nur Text — das Etikett existiert erst, wenn etwas es zeichnet. Drei praktische Wege, ein ZPL-Etikett vor dem Drucker zu sehen.

Eigenen ZPL-Code testen →