Anmelden
Produkte
ZPL-ViewerBarcode-GeneratorBild → ZPLZPL-SpickzettelEtiketten-DesignerVorlagen-Galerie
Entwickler
API-SchnellstartAPI-ReferenzMCP-ServerMassenerzeugungWebhooksSDKs & BeispieleLimitsDirectPrint-Agent NeuGitHub ActionVS-Code-ErweiterungOn-Premise
Lösungen
Logistik und VersandE-CommerceERP & WMSProduktionEinzelhandelGesundheitswesen und LaborAlle Lösungen
Tools
ZPL-DiagnosezentrumZPL-DebuggerGrößen- und DPI-AnalyseDPI-KonverterBarcode-PlatzrechnerVersandetiketten-AnalyseSchriftprüfungAusrichtungs-DebuggerKalibrierungsassistentDruckerkompatibilitätsprüfungBarcode-LesbarkeitsprüfungDruckersprachen-ErkennungThermodrucker-TestpaketZPL-ToolsEPL-ToolsTSPL-ToolsCPCL-ToolsDruckersprachen-KonverterAlle WerkzeugeRatgeberPreise
Sprache
EnglishTürkçeDeutsch
Startseite›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.

Labelixa DirectPrint

Werden Ihre Etiketten in Labelixa erzeugt oder gespeichert, ist der DirectPrint-Agent das fertige lokale Hilfsprogramm: ein kleines Programm auf einem Rechner im Netz des Druckers, das Druckaufträge von der API abholt und an den Drucker übergibt — über das Netzwerk oder über die Druckwarteschlange eines USB-Druckers. Es öffnet keinen eingehenden Port. Download und Einrichtung: /de/download

ZPL aus der Cloud auf einem USB-Zebra-Drucker 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

ZPL aus der Cloud auf einem USB-Zebra-Drucker drucken

Ein USB-Etikettendrucker hat keinen Port 9100. Wie die Druckwarteschlange rohes ZPL transportiert und der Labelixa-Agent sie mit der Cloud-API verbindet.

ZPL aus dem Browser drucken

Ein Browser kann keinen Socket zu Port 9100 öffnen. Die drei Muster, die ZPL aus einer Web-App wirklich ausliefern, und ihr Preis.

Warum wurde mein Etikett auf dem falschen Drucker gedruckt?

Etiketten auf dem falschen Drucker sind kein Pech, sondern ein Identitätsproblem: Warteschlangennamen, DHCP-Leases, geteilte Treiber. Diagnose und Vorbeugung.

ZPL ohne Druckertreiber drucken

Warum ZPL keinen Treiber braucht, drei rohe Sendewege — Socket, CUPS-Raw-Queue, Windows Generic/Text Only — und wann ein echter Treiber wirklich hilft.

Eigenen ZPL-Code testen →