Menu

ZPL vs EPL: Differences

Complete comparison between Zebra's two programming languages with code examples and migration guide

Try our free ZPL tools right now

Free, no signup required — Instant results

ZPL or EPL?

Zebra Technologies developed two programming languages for their thermal printers: ZPL (Zebra Programming Language) and EPL (Eltron Programming Language). ZPL was created in the 1990s as the successor to EPL, which existed since the 1980s when Zebra acquired Eltron Technologies. Although both are used to create labels, they have fundamental differences in syntax, graphic capabilities, barcode support and performance. EPL was officially discontinued in 2010 but remains in use in legacy systems. This guide helps you understand the differences and decide when to migrate.

Comparison table

CaracterísticaZPLEPL
Year of introduction1990s — Modern language, actively developed1980s — Legacy language, discontinued in 2010
Basic syntaxCommands with ^ (format) and ~ (configuration). Example: ^XA...^XZCommands with simple letters. Example: N...P
Label structure^XA opens, ^XZ closes. Fields with ^FO+^FD+^FSN clears buffer, P prints. Fields with direct positioning
1D barcodesCode 128, Code 39, EAN-13, UPC-A, Code 93, Interleaved 2 of 5 and moreCode 128, Code 39, EAN-13, UPC-A — fewer options
2D barcodesQR (^BQ), DataMatrix (^BX), PDF417 (^B7), Aztec (^BO)Only PDF417 and DataMatrix on recent models, no native QR
Graphics and images^GF for images, ^GB for boxes, ^GC for circles, ^GD for diagonal linesOnly GW (Graphic Write) for simple bitmap images
FontsScalable built-in fonts (0-9, A-Z), downloadable TrueType, Unicode via ^CI285 fixed bitmap fonts, no scaling, no Unicode
Text rotation4 orientations per field (N=0°, R=90°, I=180°, B=270°)4 rotations but only for the entire label
Serialization^SN with configurable increment, zero padding, multiple fieldsBasic serialization with C command, less flexible
Print speed^PR controls speed per label (1-14 inches/second)S controls speed but with less granularity
Print mode^MM supports tear-off, peel-off, rewind, cutter and applicatorFewer modes, more limited configuration
Compatible printersAll modern Zebra (ZD, ZT, ZQ, ZE). Partially compatible with TSC and SATOOriginal Eltron and old Zebra (LP, TLP). No support on current printers
Support and documentationUpdated ZPL II manual, active community, abundant examplesArchived documentation, no updates since 2010
Marketplace usageAmazon, eBay, Shopify and FedEx generate shipping labels in ZPLNo modern marketplace generates labels in EPL

When to use each language?

ZPLUsar cuando...

  • Modern Zebra printers of any series (ZD, ZT, ZQ, ZE)
  • Need QR codes, DataMatrix or any 2D barcode
  • Require graphics, logos or images on labels
  • Shipping labels from marketplaces (Amazon, eBay, Shopify)
  • Integration with ERP, WMS or e-commerce platforms
  • Need advanced serialization or variable data fields
  • Labels with international characters using UTF-8
  • Any new project, regardless of complexity

EPLUsar cuando...

  • Old Eltron printers that don't support ZPL
  • Stable legacy systems that work and don't need changes
  • Extremely simple text-only labels without graphics
  • Existing EPL code that would be costly to rewrite immediately
  • Specific hardware with firmware that only accepts EPL

Code comparison: ZPL vs EPL

Simple text label

ZPL
^XA
^FO50,50
^A0N,30,30
^FDHello World^FS
^XZ
EPL
N
A50,50,0,3,1,1,N,"Hello World"
P1

Label with Code 128 barcode

ZPL
^XA
^FO50,50
^BY2
^BCN,100,Y,N,N
^FD123456789^FS
^XZ
EPL
N
B50,50,0,1,2,3,100,B,"123456789"
P1

Label with text + barcode + box

ZPL
^XA
^FO50,30^A0N,25,25
^FDProduct: Widget^FS
^FO50,70^BY2
^BCN,80,Y^FDSKU001^FS
^FO40,20^GB350,150,2^FS
^XZ
EPL
N
A50,30,0,2,1,1,N,"Product: Widget"
B50,70,0,1,2,2,80,B,"SKU001"
X40,20,2,390,170
P1

Quick EPL to ZPL migration guide

  • 1
    Replace N (clear buffer in EPL) with ^XA (start format in ZPL)
  • 2
    Replace P or P1 (print in EPL) with ^XZ (end format in ZPL)
  • 3
    Convert A (text in EPL) to ^FO + ^A + ^FD + ^FS. Example: A50,50,0,3,1,1,N,"Text" → ^FO50,50 ^A0N,30,30 ^FDText^FS
  • 4
    Convert B (barcode in EPL) to ^BY + ^BC. Example: B50,100,0,1,2,3,80,B,"123" → ^FO50,100 ^BY2 ^BCN,80,Y ^FD123^FS
  • 5
    Convert X (line in EPL) to ^GB (graphic box in ZPL). Parameters change format
  • 6
    Add ^CI28 at the beginning if you need accents or international characters
  • 7
    Use the ZPLPDF ZPL Viewer to verify each converted label before printing
  • 8
    Migrate gradually: convert one label at a time and validate on the actual printer

Recommendation

For any new project, ZPL is the right choice without question. It offers more features, better support, up-to-date documentation and is the worldwide logistics industry standard. If you have existing EPL code, plan a gradual migration following the steps in this guide. If you use non-Zebra printers (Brother, DYMO, Rollo), convert your ZPL code to PDF with ZPLPDF to print from any brand.

Frequently asked questions about ZPL vs EPL

ZPL or EPL: which is better for current printers?

ZPL is the best choice for any current printer. It supports QR codes, advanced graphics, scalable fonts and is compatible with all modern Zebra printers. EPL was discontinued in 2010 and receives no updates. Marketplaces like Amazon, eBay and Shopify generate shipping labels exclusively in ZPL format.

How do I convert EPL code to ZPL?

There is no direct automatic conversion. You need to manually rewrite the commands: replace N with ^XA, P with ^XZ, A (text) with ^FO+^A+^FD+^FS, and B (barcode) with ^BY+^BC+^FD+^FS. See the migration section on this page for detailed examples of each conversion.

Does my printer support both ZPL and EPL?

Many modern Zebra printers (ZD, ZT, ZQ series) support both languages with automatic detection. However, printers from other brands like Brother, DYMO or Rollo generally don't support either natively. For these brands, use ZPLPDF to convert ZPL to PDF and print from any printer.

Why do Amazon and FedEx use ZPL format?

ZPL is the worldwide logistics industry standard for thermal labels. It produces high-quality barcodes that industrial scanners read reliably, supports multiple barcode types and is compatible with the operations of the largest global logistics operators.

Is EPL faster than ZPL?

EPL may be marginally faster for very simple text-only labels because its syntax is more compact. However, for any label with barcodes, graphics or complex formatting, ZPL is equally or more efficient. The speed difference is negligible on modern printers.

Does ZPLPDF work with EPL files?

Currently ZPLPDF specializes in ZPL. For EPL files, we recommend manually converting to ZPL following our migration guide on this page, then using ZPLPDF to view, validate and convert to PDF.

Can I use ZPL on non-Zebra printers?

ZPL is native to Zebra. Some brands like TSC and SATO have partial compatibility. For other brands (Brother, DYMO, Rollo, generic thermal printers), the solution is to convert ZPL to PDF with ZPLPDF and then print the PDF from any printer, regardless of brand.

Convert your ZPL code

Try our free tools to view, validate and convert ZPL files to PDF.