Preskoči na sadržaj

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Šta to radiCategoryEvidence
^XA Otvara etiketu. Sve do ^XZ je jedna etiketa. Format etikete Rendered example
^XZ Zatvara oznaku otvorenu sa ^XA i štampa je. Format etikete Rendered example
^PW Podesi širinu oznake u tačkama. Format etikete Rendered example
^LL Podesi dužinu oznake u tačkama. Format etikete Rendered example
^LH Pomera početnu tačku od koje se meri svaka pozicija polja. Format etikete Rendered example
^LS Pomera svako polje ulevo za dati broj tačaka. Format etikete Rendered example
^LT Pomera celu etiketu nagore ili nadole za zadati broj redova tačaka. Format etikete Rendered example
^PO Štampajte oznaku normalno (N) ili naopako (I). Format etikete Rendered example
^PM Ogleda celu etiketu horizontalno kada je postavljeno na Y. Format etikete Rendered example
^PQ Podesite koliko oznaka da se štampa; svaka se računa kao oznaka u prikazu. Format etikete Rendered example
^MU Menja jedinicu mere u tačke, inče ili milimetre. Format etikete Rendered example
^CI Odabire skup karaktera. ^CI28 je UTF-8. Format etikete Rendered example
^FO Podesi poziciju polja: x, y koordinate u tačkama od gornjeg levog ugla. Polja i pozicija Rendered example
^FT Pozicionira polje po njegovoj osnovici umesto po gornjem levom uglu. Polja i pozicija Rendered example
^FD Tekst ili podaci o bar kodu trenutnog polja. Polja i pozicija Rendered example
^FS Zatvara trenutno polje. Polja i pozicija Rendered example
^FB Obavija tekst u blok sa širinom, brojem redova i poravnanjem. Polja i pozicija Rendered example
^FR Štampajte polje belo na crnom preko onoga što se nalazi ispod. Polja i pozicija Rendered example
^FH Dozvoljava ^FD da sadrži heksadecimalne escape znakove kao što je _0D. Polja i pozicija Rendered example
^FW Podesi podrazumevanu rotaciju za polja koja slede. Polja i pozicija Rendered example
^FN Ime varijablskog polja u sačuvanom formatu. Polja i pozicija Rendered example
^FX Komentar. Štampač ignoriše sve do sledeće komande. Polja i pozicija Rendered example
^SN Štampajte broj koji se povećava na svakoj oznaci. Polja i pozicija PartialRead but not drawn: the serial field is left out and copies aren't incremented (the same as Labelary's preview). Rendered example
^A Odabire font, rotaciju i veličinu za sledeće tekstu polje. Tekst i fontovi Rendered example
^A@ Odabire font po imenu datoteke na štampaču. Tekst i fontovi Rendered example
^CF Podesi font i veličinu koja se koristi kada polje nema ^A. Tekst i fontovi Rendered example
^TB Obavija tekstualno polje unutar okvira zadate širine i visine. Tekst i fontovi Rendered example
^CW Dodeljuje ime od jednog slova datoteci fonta. Tekst i fontovi Stores or recalls data; no image of its own
^BY Podesi širinu modula, odnos širokog i uskog i visinu za barkode koji slede. Barkodovi Rendered example
^BC Code 128 bar kod, najčešći na poštanskim etiketama. Barkodovi Rendered example
^B3 Code 39 barkod. Barkodovi Rendered example
^B2 Mešani 2 od 5 barkod, samo numerički. Barkodovi Rendered example
^BE EAN-13 maloprodajni barkod. Barkodovi Rendered example
^B8 EAN-8 maloprodajni barkod. Barkodovi Rendered example
^BU UPC-A maloprodajni bar kod. Barkodovi Rendered example
^B9 UPC-E maloprodajni bar kod. Barkodovi Rendered example
^BQ QR код. Податак поља почиње нивоом корекције грешке и режимом уноса, као у ^FDQA,text. Barkodovi Rendered example
^BX Data Matrix 2D barkod. Barkodovi Rendered example
^B7 PDF417 složeni 2D barkod. Barkodovi Rendered example
^BO Aztec 2D barkod. Barkodovi Rendered example
^BD MaxiCode, koristi UPS. Barkodovi Rendered example
^B0 Aztec 2D barkod; ista komanda kao ^BO. Barkodovi Rendered example
^BA Kod 93 barkod: gušći od Koda 39, sa dva ugrađena kontrolna karaktera. Barkodovi Rendered example
^BK Codabar barkod, koristi se u bibliotekama, bankama krvi i nekim kurirskim službama. Barkodovi Rendered example
^BL LOGMARS баркод, Код 39 америчке војске са обавезном контрольном цифром. Barkodovi Rendered example
^B1 Kod 11 barkod, numerički, koristi se na telekomunikacionoj opremi. Barkodovi Rendered example
^BM MSI (Modifikovani Plessey) barcode, numerički, korišćen na etiketama za police. Barkodovi Rendered example
^BP Plessey barkod, numerički, sa CRC kontrolnom cifrom. Barkodovi Rendered example
^BS 2- ili 5-cifreni dodatak se štampa pored UPC ili EAN koda. Barkodovi Rendered example
^BZ Američki poštanski bar kodovi: POSTNET, PLANET i Inteligentna pošta. Barkodovi Rendered example
^B5 USPS PLANET bar kod. Barkodovi Rendered example
^BR GS1 DataBar (раније RSS): компактни GTIN баркодови за производе и купоне. Barkodovi 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, manji PDF417 za male etikete. Barkodovi Rendered example
^GB Crtanje okvira ili linije: širina, visina, debljina ivice, boja i zaobljenje. Grafika Rendered example
^GC Crtanje kruga: prečnik, debljina ivice i boja. Grafika Rendered example
^GE Crtanje elipse. Grafika Rendered example
^GD Crtanje dijagonalne linije. Grafika Rendered example
^GF Ugrađuje bitmap sliku u oznaku (ASCII hex, binarna ili Z64). Grafika Rendered example
^GS Štampajte registrovani, autorski ili neki drugi simbol. Grafika Rendered example
^DF Skladišti format oznake na štampaču pod imenom. Skladišteni formati i slike Rendered example
^XF Povlači pohranjeni format da popuni svoja ^FN polja. Skladišteni formati i slike Rendered example
~DG Skladišti sliku na štampaču pod imenom. Skladišteni formati i slike Stores or recalls data; no image of its own
^XG Štampajte sliku pohranjenu sa ~DG. Skladišteni formati i slike Stores or recalls data; no image of its own
^IM Štampajte pohranjenu sliku na trenutnoj poziciji polja. Skladišteni formati i slike 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.

Prelazak sa 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.

Повратне информација