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 | यह क्या करता है | Category | Evidence |
|---|---|---|---|
^XA |
एक लेबल खोलता है। ^XZ तक सब कुछ एक लेबल है। | लेबल प्रारूप | Rendered example |
^XZ |
^XA द्वारा खोली गई लेबल को बंद करता है और इसे प्रिंट करता है। | लेबल प्रारूप | Rendered example |
^PW |
लेबल की चौड़ाई बिंदुओं में सेट करता है। | लेबल प्रारूप | Rendered example |
^LL |
लेबल की लंबाई बिंदुओं में सेट करता है। | लेबल प्रारूप | Rendered example |
^LH |
उस मूल को स्थानांतरित करता है जिससे हर फ़ील्ड स्थिति मापी जाती है. | लेबल प्रारूप | Rendered example |
^LS |
दिए गए संख्या के बिंदुओं से हर क्षेत्र को बाएँ शिफ्ट करता है। | लेबल प्रारूप | Rendered example |
^LT |
पूरे लेबल को दिए गए डॉट पंक्तियों की संख्या से ऊपर या नीचे स्थानांतरित करता है. | लेबल प्रारूप | Rendered example |
^PO |
लेबल को सामान्य (N) या उल्टा (I) प्रिंट करता है। | लेबल प्रारूप | Rendered example |
^PM |
य सेट करने पर पूरे लेबल को क्षैतिज रूप से दर्पणित करता है. | लेबल प्रारूप | Rendered example |
^PQ |
कितने लेबल प्रिंट करने हैं, सेट करता है; हर एक पूर्वावलोकन में एक लेबल के रूप में गिना जाता है। | लेबल प्रारूप | Rendered example |
^MU |
माप की इकाई को बिंदुओं, इंच या मिलीमीटर में बदलती है। | लेबल प्रारूप | Rendered example |
^CI |
अक्षर सेट चुनता है। ^CI28 UTF-8 है। | लेबल प्रारूप | Rendered example |
^FO |
क्षेत्र की स्थिति सेट करता है: शीर्ष-बाएँ कोने से बिंदुओं में x, y समन्वय। | फील्ड्स और स्थिति | Rendered example |
^FT |
एक फ़ील्ड को इसके बेज़लाइन द्वारा इसके शीर्ष-बाएँ कोने के बजाय स्थित करता है। | फील्ड्स और स्थिति | Rendered example |
^FD |
वर्तमान क्षेत्र का पाठ या बारकोड डेटा। | फील्ड्स और स्थिति | Rendered example |
^FS |
वर्तमान फ़ील्ड समाप्त करता है। | फील्ड्स और स्थिति | Rendered example |
^FB |
पाठ को चौड़ाई, पंक्ति संख्या और संरेखण के साथ एक ब्लॉक में लपेटता है। | फील्ड्स और स्थिति | Rendered example |
^FR |
इसके नीचे जो भी है, उसके ऊपर काले पर सफेद फ़ील्ड प्रिंट करता है। | फील्ड्स और स्थिति | Rendered example |
^FH |
^FD को _0D जैसे हैक्स एस्केप को शामिल करने दें। | फील्ड्स और स्थिति | Rendered example |
^FW |
जो क्षेत्रों के लिए अनुसरण करते हैं, उनके लिए डिफ़ॉल्ट घुमाव सेट करता है। | फील्ड्स और स्थिति | Rendered example |
^FN |
सहेजे गए प्रारूप में एक चर फ़ील्ड का नाम. | फील्ड्स और स्थिति | Rendered example |
^FX |
एक टिप्पणी। प्रिंटर अगले आदेश तक सब कुछ नजरअंदाज करता है। | फील्ड्स और स्थिति | Rendered example |
^SN |
प्रत्येक लेबल पर बढ़ता हुआ अंक प्रिंट करता है। | फील्ड्स और स्थिति | PartialRead but not drawn: the serial field is left out and copies aren't incremented (the same as Labelary's preview). Rendered example |
^A |
अगले पाठ क्षेत्र के लिए फ़ॉन्ट, घुमाव और आकार चुनता है। | पाठ और फॉन्ट | Rendered example |
^A@ |
प्रिंटर पर फ़ाइल नाम द्वारा एक फ़ॉन्ट चुनता है। | पाठ और फॉन्ट | Rendered example |
^CF |
जब एक क्षेत्र में कोई ^A नहीं होता है, तो उपयोग किए जाने वाले फ़ॉन्ट और आकार सेट करता है। | पाठ और फॉन्ट | Rendered example |
^TB |
दिए गए चौड़ाई और ऊँचाई के बॉक्स के अंदर एक पाठ क्षेत्र लपेटता है। | पाठ और फॉन्ट | Rendered example |
^CW |
एक फ़ॉन्ट फ़ाइल को एकल अक्षर का नाम असाइन करता है। | पाठ और फॉन्ट | Stores or recalls data; no image of its own |
^BY |
जो बारकोड अनुसरण करते हैं, उनके लिए मॉड्यूल चौड़ाई, चौड़े से संकीर्ण अनुपात और ऊँचाई सेट करता है। | बारकोड | Rendered example |
^BC |
कोड 128 बारकोड, शिपिंग लेबल पर सबसे सामान्य। | बारकोड | Rendered example |
^B3 |
कोड 39 बारकोड। | बारकोड | Rendered example |
^B2 |
इंटरलीव्ड 2 ऑफ 5 बारकोड, केवल संख्या। | बारकोड | Rendered example |
^BE |
EAN-13 खुदरा बारकोड। | बारकोड | Rendered example |
^B8 |
EAN-8 खुदरा बारकोड। | बारकोड | Rendered example |
^BU |
UPC-A खुदरा बारकोड। | बारकोड | Rendered example |
^B9 |
UPC-E खुदरा बारकोड। | बारकोड | Rendered example |
^BQ |
QR कोड। फ़ील्ड डेटा त्रुटि सुधार स्तर और इनपुट मोड के साथ आरंभ होता है, जैसा कि ^FDQA,text में है। | बारकोड | Rendered example |
^BX |
डेटा मैट्रिक्स 2D बारकोड। | बारकोड | Rendered example |
^B7 |
PDF417 stacked 2D बारकोड। | बारकोड | Rendered example |
^BO |
अज़्टेक 2D बारकोड। | बारकोड | Rendered example |
^BD |
मैक्सीकोड, जिसका उपयोग UPS द्वारा किया जाता है. | बारकोड | Rendered example |
^B0 |
अज़्टेक 2D बारकोड; ^BO के समान कमांड। | बारकोड | Rendered example |
^BA |
कोड 93 बारकोड: कोड 39 से घनत्व में अधिक, जिसमें दो अंतर्निहित जांच वर्ण होते हैं। | बारकोड | Rendered example |
^BK |
कोडबार बारकोड, जिसका उपयोग पुस्तकालयों, रक्त बैंकों और कुछ कुरियर द्वारा किया जाता है। | बारकोड | Rendered example |
^BL |
LOGMARS बारकोड, संयुक्त राज्य अमेरिका की सेना का कोड 39 जिसमें अनिवार्य चेक अंक होता है। | बारकोड | Rendered example |
^B1 |
कोड 11 बारकोड, संख्या, जो टेलीकॉम उपकरणों पर उपयोग किया जाता है। | बारकोड | Rendered example |
^BM |
MSI (संशोधित प्लेसी) बारकोड, संख्यात्मक, शेल्फ लेबल पर उपयोग किया जाता है। | बारकोड | Rendered example |
^BP |
प्लेसी बारकोड, संख्यात्मक, CRC जांच अंक के साथ। | बारकोड | Rendered example |
^BS |
UPC या EAN कोड के बगल में प्रिंट किया गया 2- या 5-अंक का ऐड-ऑन। | बारकोड | Rendered example |
^BZ |
यूएस डाक बारकोड: POSTNET, PLANET और Intelligent Mail। | बारकोड | Rendered example |
^B5 |
USPS PLANET बारकोड। | बारकोड | Rendered example |
^BR |
GS1 डेटा बार (पूर्व में RSS): उत्पादन और कूपनों के लिए कॉम्पैक्ट GTIN बारकोड। | बारकोड | 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, छोटे लेबल के लिए एक छोटा PDF417। | बारकोड | Rendered example |
^GB |
एक बॉक्स या रेखा खीचता है: चौड़ाई, ऊंचाई, सीमा की मोटाई, रंग और गोलाई। | ग्राफिक्स | Rendered example |
^GC |
एक वृत्त खीचता है: व्यास, सीमा की मोटाई और रंग। | ग्राफिक्स | Rendered example |
^GE |
एक दीर्घवृत्त खीचता है। | ग्राफिक्स | Rendered example |
^GD |
एक तिरछी रेखा खीचता है। | ग्राफिक्स | Rendered example |
^GF |
लेबल में एक बिटमैप छवि डालता है (ASCII हेक्स, बाइनरी या Z64)। | ग्राफिक्स | Rendered example |
^GS |
पंजीकृत, कॉपीराइट या अन्य प्रतीक प्रिंट करता है। | ग्राफिक्स | Rendered example |
^DF |
प्रिंटर पर एक नाम के तहत लेबल फॉर्मेट सहेजता है। | सहेजे गए प्रारूप और छवियाँ | Rendered example |
^XF |
इसके ^FN फ़ील्ड भरने के लिए एक संग्रहीत फ़ॉर्मेट को पुनः प्राप्त करता है। | सहेजे गए प्रारूप और छवियाँ | Rendered example |
~DG |
प्रिंटर पर एक नाम के तहत एक छवि सहेजता है। | सहेजे गए प्रारूप और छवियाँ | Stores or recalls data; no image of its own |
^XG |
छवि को ~DG के साथ संग्रहीत करता है। | सहेजे गए प्रारूप और छवियाँ | Stores or recalls data; no image of its own |
^IM |
वर्तमान फ़ील्ड उत्पत्ति पर संग्रहीत छवि प्रिंट करता है। | सहेजे गए प्रारूप और छवियाँ | 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.
| Group | Commands |
|---|---|
| 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.
| Command | Symbology or feature | What the engine does today |
|---|---|---|
^B4 | Code 49 | No bars; the data is printed as text (Labelary doesn't draw it either). |
^BB | CODABLOCK | No symbol; the data is printed as text (Labelary doesn't draw it either). |
^BT | TLC39 | No symbol; the data is printed as text (Labelary doesn't draw it either). |
Known differences
- A format with no fields, such as
^XA^XZ, returns400 ERROR: No labels found in the ZPLinstead of a blank image. - Fonts: Zebra's font 0 (CG Triumvirate Bold Condensed) can't be bundled, so
^A0is drawn with Roboto Condensed Bold, with spacing calibrated per character. The bitmap fonts^AA–^AHare drawn with DejaVu Sans Mono. Text widths can differ by a few dots from a given printer. - An RFID write (
^RFfollowed by^FD…^FS) draws its data as text; a printer encodes it in the tag and prints nothing. - EPL reverse text (the
Rflag ofA) 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.
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.