Veröffentlicht: · Aktualisiert:
ZPL und CPCL stammen beide von Zebra, weshalb man sie für Dialekte einer Sprache hält. Das sind sie nicht. Sie wurden für unterschiedliche Maschinen unter unterschiedlichen Zwängen entworfen, und fast jeder Unterschied folgt daraus: ZPL für stationäre Drucker mit eingelegtem Material bekannter Größe, CPCL für akkubetriebene Geräte, die Belege und Etiketten am Gürtel drucken.
| Konzept | ZPL | CPCL |
|---|---|---|
| Auftragsbeginn | ^XA |
! 0 200 200 210 1 — ein Header mit Offset, Auflösung,
Höhe und Kopien |
| Argumenttrenner | Positionsgebunden nach dem Befehlspräfix | Leerzeichen (keine Kommas) |
| Etikettenhöhe | ^LL |
Im !-Header |
| Kopien | ^PQ |
Letztes Feld des !-Headers |
| Text | ^FO50,50^A0N,40,40^FDHello^FS |
TEXT 4 0 50 50 Hello |
| Gedrehter Text | Richtungsbuchstabe in ^A |
Eigene Befehle: TEXT90, TEXT180,
TEXT270 |
| Auftragsende | ^XZ | PRINT
|
Der Header ist der Unterschied, über den man zuerst stolpert. In ZPL
sind Etikettengröße und Kopienzahl Befehle, die überall im Format stehen
können; in CPCL sind sie Felder der Eröffnungszeile. Ein Auftrag ohne
korrekte !-Zeile ist also kein Auftrag mit Vorgaben — es ist
einer, dessen Größe und Menge niemand genannt hat.
Ein Tischdrucker weiß, welches Material eingelegt ist, hängt am Strom und druckt dieselbe Etikettenform tausendfach. Ein mobiles Gerät nicht: die Rolle ist schmal, der Akkustand ändert die Schwärzung, und die Bedienerin steht in einer Tür. CPCL packt die ganze Auftragsbeschreibung in einen kompakten Header, weil ein mobiler Auftrag oft vor Ort für einen Vorgang entsteht und nicht aus einer Vorlage gemischt wird.
Das erklärt auch die praktischen Ratschläge zu beiden. Auf
Tischdruckern sind die wiederkehrenden Probleme Vorlagenprobleme:
Koordinaten, Materialkonflikt, Auflösung. Auf mobilen Geräten sind sie
physisch: Kontrast, Akku, Rollenbreite — deshalb kennt CPCL
CONTRAST, TONE und SPEED als
eigenständige Befehle.
Kurze Antwort: ZPL, außer der Drucker ist ein mobiles Gerät, das nur CPCL spricht. Zebras eigene Entwicklerempfehlung sagt dasselbe: ZPL ist die Sprache, die weiter neue Funktionen bekommt, CPCL und die anderen Altsprachen nur noch Fehlerkorrekturen; ZPL hat die breiteste Schrift- und Lokalisierungsunterstützung; und es läuft auf fast jedem Zebra-Modell, sodass ein Format ohne Neuschreiben von Drucker zu Drucker wandert. CPCL gewinnt nur dort, wofür es gebaut wurde — Belegdruck aus einem Gürteldrucker (ZQ/QLn-Serie), der direkt von einer App gesteuert wird, oder eine bestehende CPCL-Codebasis, deren Migration sich nicht lohnt.
Prüfen Sie vor dem Senden, worauf der Drucker eingestellt ist.
Ein Link-OS-Drucker nimmt über jede Verbindung eine SGD-Abfrage an:
! U1 getvar "device.languages" — und
! U1 getvar "allcv" listet die Werte, die das Modell erlaubt.
Umschalten: ! U1 setvar "device.languages" "zpl" und danach ein
Reset; ein mobiler Drucker, der mit line_print ausgeliefert
wird, ignoriert gesendetes ZPL stillschweigend, bis Sie das tun. Wird der
Drucker über einen Windows-Treiber angesteuert, muss auch dessen Sprache
passen (Zebras device.pnp_option) — ein ZPL-Job durch einen
CPCL-Treiber druckt nichts oder die Befehle als Text. Nicht sicher, in
welcher Sprache eine Datei ist? Der
Sprachdetektor liest den
Code selbst; das CPCL-Zentrum und das
ZPL-Zentrum bündeln Werkzeuge und Referenzen jeder
Sprache.
^LL/^PQ gibt es kein CPCL-Gegenstück; beide
werden Felder der !-Zeile.Sehen Sie beide Engines nebeneinander: den ZPL-Viewer und den CPCL-Viewer. Wenn Sie nicht sicher sind, in welcher Sprache eine Datei geschrieben ist, ordnet der Sprachdetektor sie anhand des Codes selbst ein. Die Details zur Fehlersuche auf der mobilen Seite stehen in CPCL prüfen und debuggen; jeder CPCL-Befehl, den die Vorschau liest, steht mit seinem Unterstützungsstatus in der CPCL-Befehlsreferenz.
ZPL, außer der Drucker ist ein mobiles Gerät, das nur CPCL spricht. Zebra erweitert ZPL weiter und liefert es auf fast jedem Modell; CPCL ist für Gürteldrucker (ZQ/QLn), die direkt von einer App gesteuert werden, oder für bestehenden CPCL-Code.
Viele mobile Link-OS-Drucker ja, aber nur eines zur Zeit: die aktive Sprache ist die Einstellung device.languages. Mit ! U1 getvar "device.languages" abfragen, mit ! U1 setvar "device.languages" "zpl" und einem Reset umschalten. Tisch- und Industriedrucker sind reine ZPL-Geräte.
Der Drucker ist im CPCL- oder Line-Print-Modus, ^XA…^XZ wird nicht geparst. device.languages auf zpl stellen; beim Druck über einen Windows-Treiber den Treiber auf dieselbe Sprache setzen (device.pnp_option).
Von EPL-Druckern zu TSC-Hardware: was beide Sprachen teilen, was kein Gegenstück hat und wie man die Migration testet.
ZPL vs. TSPL: was wirklich anders istGröße in Punkten gegen echte Einheiten, Auftragsaufbau, Text- und Barcode-Syntax — die ZPL/TSPL-Unterschiede, die Portierzeit kosten.
EPL ohne Drucker prüfen und debuggenAlte EPL/EPL2-Aufträge im Browser gerendert: was jede Zeile tut, welche Befunde zählen und was eine Vorschau nicht zeichnet.
Arabischer Text in CPCL gespiegelt oder zerrissenArabisch oder Hebräisch per CPCL TEXT kann gespiegelt oder mit getrennten Buchstaben drucken. Warum, und drei Wege, Rechts-nach-links-Text richtig zu drucken.