Prejsť na obsah

ZPL compatibility of the OpenZPL engine

The OpenZPL engine draws the 64 ZPL commands of the command reference, one of them partially, and skips the ones that configure the printer. The barcode and text commands listed under “Not supported yet” don't draw correctly today.

Tested 2026-10-26 with openzpl-api 10d0497 at 8 dpmm.

How we test

Every example on this site is a fixture: a short synthetic label that the engine renders to a PNG when the site is built. If a fixture's ZPL changes and its image isn't rendered again, the build fails, so the image always shows what the engine does with that exact code.

The 140 fixtures are public in fixtures.json, with their size, density and image, under CC0. Use them to test any ZPL renderer.

A preview isn't a print. Darkness, media, firmware and the fonts installed on a printer change the result, so check critical labels on the printer itself.

Drawn

CommandČo robíCategoryEvidence
^XA Otvorí štítok. Všetko až po ^XZ je jeden štítok. Formát nálepky Rendered example
^XZ Zavrie otvorený štítok ^XA a vytlačí ho. Formát nálepky Rendered example
^PW Nastavuje šírku etikety v bodoch. Formát nálepky Rendered example
^LL Nastavuje dĺžku etikety v bodoch. Formát nálepky Rendered example
^LH Posúva pôvod, od ktorého sa merajú všetky polohové hodnoty. Formát nálepky Rendered example
^LS Posúva každé pole doľava o zadaný počet bodov. Formát nálepky Rendered example
^LT Posúva celý štítok nahor alebo nadol o daný počet riadkov bodov. Formát nálepky Rendered example
^PO Tlačí štítok normálne (N) alebo hore nohami (I). Formát nálepky Rendered example
^PM Zrkadlí celý štítok horizontálne, ak je nastavené na Y. Formát nálepky Rendered example
^PQ Nastavuje, koľko etikiet sa má vytlačiť; každá sa počíta ako etiketa v náhľade. Formát nálepky Rendered example
^MU Zmení jednotku merania na body, palce alebo milimetre. Formát nálepky Rendered example
^CI Vyberá znakovej sady. ^CI28 je UTF-8. Formát nálepky Rendered example
^FO Nastavuje pozíciu poľa: x, y súradnice v bodoch od ľavého horného rohu. Polia a pozícia Rendered example
^FT Umiestňuje pole podľa jeho základnej línie namiesto jeho horného ľavého rohu. Polia a pozícia Rendered example
^FD Textové alebo čiarové kódové údaje aktuálneho poľa. Polia a pozícia Rendered example
^FS Ukončuje aktuálne pole. Polia a pozícia Rendered example
^FB Ovinie text do bloku so šírkou, počtom riadkov a zarovnaním. Polia a pozícia Rendered example
^FR Tlačí pole biele na čiernom nad čímkoľvek, čo je pod ním. Polia a pozícia Rendered example
^FH Umožňuje, aby ^FD obsahovalo hex úniky ako _0D. Polia a pozícia Rendered example
^FW Nastavuje predvolené otočenie pre nasledujúce polia. Polia a pozícia Rendered example
^FN Nazýva premenné pole v uloženom formáte. Polia a pozícia Rendered example
^FX Komentár. Tlačiareň ignoruje všetko až po nasledujúcu príkaz. Polia a pozícia Rendered example
^SN Tlačí číslo, ktoré sa na každom štítku zvyšuje. Polia a pozícia PartialRead but not drawn: the serial field is left out and copies aren't incremented (the same as Labelary's preview). Rendered example
^A Vyberá font, otočenie a veľkosť pre ďalšie textové pole. Text a písma Rendered example
^A@ Vyberá font podľa jeho názvu súboru na tlačiarni. Text a písma Rendered example
^CF Nastavuje font a veľkosť používané, keď pole nemá ^A. Text a písma Rendered example
^TB Zabalí textové pole do rámčeka s danou šírkou a výškou. Text a písma Rendered example
^CW Priradí názov s jedným znakom k súboru písma. Text a písma Stores or recalls data; no image of its own
^BY Nastavuje šírku modulu, pomer širokého a úzkeho a výšku pre nasledujúce čiarové kódy. Čiarové kódy Rendered example
^BC Kód 128, najbežnejší na prepravných štítkoch. Čiarové kódy Rendered example
^B3 Čiarový kód kód 39. Čiarové kódy Rendered example
^B2 Prepletaný 2 z 5 čiarový kód, iba číselný. Čiarové kódy Rendered example
^BE EAN-13 maloobchodný čiarový kód. Čiarové kódy Rendered example
^B8 EAN-8 maloobchodný čiarový kód. Čiarové kódy Rendered example
^BU UPC-A maloobchodný čiarový kód. Čiarové kódy Rendered example
^B9 UPC-E maloobchodný čiarový kód. Čiarové kódy Rendered example
^BQ QR Code. Dátové pole začína na úrovni opravy chýb a režime vstupu, ako v ^FDQA,text. Čiarové kódy Rendered example
^BX 2D čiarový kód Data Matrix. Čiarové kódy Rendered example
^B7 PDF417, zložený 2D čiarový kód. Čiarové kódy Rendered example
^BO Aztec 2D čiarový kód. Čiarové kódy Rendered example
^BD MaxiCode, používaný UPS. Čiarové kódy Rendered example
^B0 Aztec 2D čiarový kód; rovnaký príkaz ako ^BO. Čiarové kódy Rendered example
^BA Code 93 čiarový kód: hustejší ako Code 39, s dvoma zabudovanými kontrolnými znakmi. Čiarové kódy Rendered example
^BK Codabar čiarový kód, používaný knižnicami, transfúznymi stanicami a niektorými kuriérmi. Čiarové kódy Rendered example
^BL Čiarový kód LOGMARS, kód 39 amerických ozbrojených síl s povinnou kontrolnou číslicou. Čiarové kódy Rendered example
^B1 Code 11 čiarový kód, numerický, používaný na telekomunikačnom zariadení. Čiarové kódy Rendered example
^BM MSI (modifikovaný Plessey) čiarový kód, číselný, použitý na etikety na policiach. Čiarové kódy Rendered example
^BP Plessey čiarový kód, číselný, s CRC kontrolnou číslicou. Čiarové kódy Rendered example
^BS Doplnok s 2 alebo 5 číslicami vytlačený vedľa UPC alebo EAN kódu. Čiarové kódy Rendered example
^BZ Poštové čiarové kódy USA: POSTNET, PLANET a Intelligent Mail. Čiarové kódy Rendered example
^B5 Čiarový kód USPS PLANET. Čiarové kódy Rendered example
^BR GS1 DataBar (predtým RSS): kompaktné GTIN čiarové kódy pre produkty a kupóny. Čiarové kódy PartialGS1 DataBar types 1 to 6 are drawn. Type 6 (Expanded) encodes the data as written and scans the same as Labelary's, but its last characters can differ; types 7 to 12 (UPC/EAN composites) print the data as text. Rendered example
^BF MicroPDF417, menší PDF417 pre malé etikety. Čiarové kódy Rendered example
^GB Kreslí štvorec alebo čiaru: šírka, výška, hrúbka okraja, farba a zaoblenie. Grafika Rendered example
^GC Kreslí kruh: priemer, hrúbka okraja a farba. Grafika Rendered example
^GE Kreslí elipsu. Grafika Rendered example
^GD Kreslí diagonálnu čiaru. Grafika Rendered example
^GF Vkladá bitmapový obrázok do štítka (ASCII hex, binárny alebo Z64). Grafika Rendered example
^GS Tlačí registrovaný, autorský alebo iný symbol. Grafika Rendered example
^DF Ukladá formát etikety na tlačiarni pod menom. Uložené formáty a obrázky Rendered example
^XF Získa uložený formát na vyplnenie jeho ^FN polí. Uložené formáty a obrázky Rendered example
~DG Ukladá obrázok na tlačiarni pod menom. Uložené formáty a obrázky Stores or recalls data; no image of its own
^XG Tlačí obrázok uložený s ~DG. Uložené formáty a obrázky Stores or recalls data; no image of its own
^IM Tlačí uložený obrázok na aktuálnom mieste poľa. Uložené formáty a obrázky Stores or recalls data; no image of its own

Ignored on purpose

These commands set up the printer, not the label. The API accepts them and renders the label as if they weren't there; we checked that the image is byte-identical without them.

GroupCommands
Media and sensors^MM, ^MN, ^MT, ^MF, ~JS
Speed, darkness and tear-off^PR, ~SD, ^MD, ~TA
Calibration and printer state~JC, ~JA, ~JR, ^JU, ~HS
Network, RFID setup and host queries^NC, ^NI, ^RS, ~HI, ~HM

Not supported yet

Each one was tested by placing it in a label at 8 dpmm. None of them fails the request: the label renders, without the symbol.

CommandSymbology or featureWhat the engine does today
^B4Code 49No bars; the data is printed as text (Labelary doesn't draw it either).
^BBCODABLOCKNo symbol; the data is printed as text (Labelary doesn't draw it either).
^BTTLC39No symbol; the data is printed as text (Labelary doesn't draw it either).

Known differences

  • A format with no fields, such as ^XA^XZ, returns 400 ERROR: No labels found in the ZPL instead of a blank image.
  • Fonts: Zebra's font 0 (CG Triumvirate Bold Condensed) can't be bundled, so ^A0 is drawn with Roboto Condensed Bold, with spacing calibrated per character. The bitmap fonts ^AA–^AH are drawn with DejaVu Sans Mono. Text widths can differ by a few dots from a given printer.
  • An RFID write (^RF followed by ^FD…^FS) draws its data as text; a printer encodes it in the tag and prints nothing.
  • EPL reverse text (the R flag of A) gets a black box the size of the character cells, as on the printer; it can run past the last character because the substitute font is narrower than EPL's bitmap fonts.

Presun z Labelary

The API keeps Labelary's v1 paths and headers, so most clients only change the host. See Migrate from Labelary for the tested differences and OpenZPL vs Labelary for the comparison.

Ohlasy