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 |
Y সেট করা হলে পুরো লেবেলটি দিগন্তভাবে প্রতিবিম্বিত করে। | লেবেল ফরম্যাট | 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 স্তীকৃত 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 কোডের পাশে মুদ্রিত ২- বা ৫ ডিজিটের যুক্তি। | বারকোড | 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 |
মাইক্রোপিডিএফ417, ছোট লেবেলের জন্য একটি ছোট পিডিএফ417। | বারকোড | 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.
লেবেলারি থেকে স্থানান্তরিত হচ্ছে
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.