Veröffentlicht: · Aktualisiert:
ZPL (Zebra Programming Language) ist der übliche Weg, einem Thermo-Etikettendrucker zu sagen: „Druck das, und zwar hier." Sie senden keine Bilddatei, sondern Text — gezeichnet wird im Drucker.
Jedes Etikett beginnt mit ^XA und endet mit ^XZ.
Alles dazwischen gehört zu diesem Etikett. Das kleinste sinnvolle Etikett sieht
so aus:
^XA
^FO50,50^A0N,40,40^FDHallo^FS
^XZDieses Etikett im ZPL-Viewer öffnen →
Stück für Stück gelesen:
^FO50,50 — Field Origin: die linke obere Ecke des
Feldes. Die Einheit sind Punkte, nicht Millimeter; wie groß ein
Punkt ist, hängt von der Auflösung des Druckers ab.^A0N,40,40 — Schrift und Größe. N ist die
Ausrichtung (normal); R, I und B drehen um
90, 180 und 270 Grad.^FD — Field Data: der eigentliche Inhalt.^FS — Field Separator: schließt das Feld ab. Fehlt er,
gelten die folgenden Befehle als Fortsetzung desselben Feldes und das Etikett
sieht völlig anders aus als erwartet.Koordinaten sind in ZPL Punkte, und die physische Größe eines Punktes hängt von der Druckdichte ab. Üblich sind 8 dpmm (203 dpi) und 12 dpmm (300 dpi). Dasselbe ZPL, das auf einem 8-dpmm-Drucker richtig aussieht, wird auf einem 12-dpmm-Drucker zu klein — dieselbe Punktzahl deckt weniger Millimeter ab. Das ist das häufigste „bei mir lief es"-Problem in ZPL.
^PW legt die Etikettenbreite fest, ^LL die Länge.
Ohne beide greift der Drucker auf seine eigenen Standardwerte zurück und die
Ausgabe unterscheidet sich von Gerät zu Gerät.
^FS. Das Feld wird nie geschlossen,
die folgenden Befehle schreiben hinein — das Etikett wirkt „halb verschwunden".^FO-Koordinate ^PW/^LL, wird der Inhalt
stillschweigend abgeschnitten: der Drucker meldet keinen Fehler, er druckt es
schlicht nicht.ZPL lernt man nicht, indem man das ganze Programmierhandbuch liest. Sechs Befehle decken das Gerüst oben ab; jeder hat eine Referenzseite mit Syntax, Beispiel und dem, was unser Renderer daraus macht.
| Befehl | Was er tut | Referenz |
|---|---|---|
^XA … ^XZ | Öffnet und schließt ein Etikett | ^XA |
^FO | Feldursprung in Punkten von der linken oberen Ecke | ^FO |
^A | Schrift, Ausrichtung und Größe des nächsten Felds | ^A |
^FD / ^FS | Die Daten eines Felds und sein Ende | ^FD, ^FS |
^PW / ^LL | Etikettenbreite und -länge in Punkten | ^PW, ^LL |
^BC | Der Code-128-Barcode der meisten Versand- und Produktetiketten | ^BC |
Von hier aus ist der übliche Weg: den ZPL-Spickzettel beim Schreiben offen halten, alles Weitere in der Befehlsreferenz nachschlagen, und wenn eine Datei auf dem Tisch landet, wie man eine ZPL-Datei öffnet und wie man ZPL an einen Netzwerkdrucker sendet lesen. Die Frage Punkte gegen Millimeter von oben hat mit gemessenen Zahlen ihren eigenen Leitfaden: Punkte, mm, Zoll und DPI-Migration. ZPL ist die Sprache von Zebra; TSC-Drucker sprechen TSPL, mobile Zebra-Drucker CPCL — der ZPL-Hub listet die Werkzeuge, die Drucker, die es ausführen, und die Vergleiche mit den anderen Sprachen.
Das Mühsame an ZPL ist, dass man für das Ergebnis normalerweise einen echten
Drucker und eine Etikettenrolle braucht: ein Versuch, ein Etikett. Die Vorschau
von Labelixa zeichnet das ZPL im Browser in echter Größe und zeigt strukturelle
Probleme — überlaufende Felder, ein fehlendes ^FS — mit
Zeilennummer an. Ohne Drucker.
Die Sprache ist gemeinsam, das Ergebnis hängt aber von der Punktdichte des Druckers ab: Positionen sind in Punkten angegeben, dasselbe ZPL druckt auf einem 203-dpi- und einem 300-dpi-Drucker unterschiedlich groß.
Nein. Ein Online-Viewer oder eine Rendering-API zeichnet das Etikett aus dem Code; ZPL lässt sich lesen, schreiben und korrigieren, bevor irgendein Drucker beteiligt ist.
Sie öffnen und schließen ein Etikett. Alles dazwischen beschreibt dieses Etikett; Befehle außerhalb des Rahmens werden ignoriert — einer der häufigsten Anfängerfehler.
Eine Sprache. ZPL beschreibt ein Etikett als Befehle, die der Drucker ausführt; dieselbe Datei kann daher auf verschiedenen Druckern unterschiedlich groß drucken — ein festes Format wie PNG könnte das nicht.
Sechs decken die meisten Etiketten ab: ^XA/^XZ als Rahmen, ^FO für die Position, ^A für Schrift und Größe, ^FD mit ^FS für die Daten, ^PW/^LL für die Etikettengröße und ^BC für einen Code-128-Barcode. Alles andere ist eine Variation davon.
Eine .zpl-Datei öffnet sich in jedem Texteditor, denn ZPL ist Klartext. Was die Datei enthält, wie man sie liest und wie man das beschriebene Etikett sieht.
Kann ChatGPT oder Claude ZPL rendern?Sprachmodelle schreiben ZPL, sehen das gedruckte Etikett aber nicht. Wie ein Render- und Validierungswerkzeug die Lücke schließt — Browser, API oder MCP.
ZPL-Datei ohne Drucker in der Vorschau ansehenEine ZPL-Datei ist nur Text — das Etikett existiert erst, wenn etwas es zeichnet. Vier Wege, ein ZPL-Etikett ohne Drucker zu sehen und zu testen, auch in CI.
Einen ZPL-Etiketten-Viewer in die eigene Seite einbettenGerenderte ZPL-Etiketten per iframe in eigenen Seiten zeigen — ohne Servercode, ohne Bibliotheken. Wie das Embed funktioniert, das URL-Format und seine Grenzen.