What Is ZPL? Zebra Programming Language Explained

ZPL (Zebra Programming Language) is the text-based command language that tells Zebra (and ZPL-compatible) thermal printers how to draw a label — text, barcodes, boxes, and images. Every label is plain text that begins with ^XA and ends with ^XZ, so it can be generated by software and sent straight to the printer. Below: the essential commands, a minimal example you can edit live, and the four ZPL tools on this site.

A minimal ZPL label

This is a complete, valid label. ^FO sets the position (in dots from the top-left), ^A0N,40,40 selects the scalable font 0 at 40×40 dots, and ^FD…^FS is the text to print:

^XA
^FO50,50^A0N,40,40^FDHello World^FS
^XZ

Edit it in the live viewer below and watch the label redraw.

Try ZPL live

Ready.

Label preview

Rendered label preview

Essential ZPL commands

Almost every label is built from this handful of commands. Commands start with a caret (^); control commands use a tilde (~).

CommandNameWhat it does
^XAStart FormatBegins a label definition.
^XZEnd FormatEnds the label and prints it.
^FOField OriginSets the x,y position of the next field, in dots.
^AFontSelects a font and character size for one field (e.g. ^A0N,40,40).
^CFChange FontSets the default font/size for the fields that follow.
^FDField DataThe actual text or barcode data to print.
^FSField SeparatorMarks the end of a field.
^GBGraphic BoxDraws a box or line (width, height, thickness).
^BC / ^BQBarcodesCode 128 (^BC) and QR Code (^BQ); see the barcode commands.
^BYBar Code DefaultsModule width, wide-to-narrow ratio, and height for barcodes.

Explore the ZPL toolkit

ZPL Viewer

Paste or upload ZPL and preview the rendered label online in real time.

ZPL to PDF

Convert Zebra ZPL labels to PDF or PNG and download them in one click.

ZPL Fonts

Built-in fonts A–H and the scalable font 0, with the ^A and ^CF commands.

ZPL Barcode Commands

Code 128, QR, Data Matrix and more — the ^BC, ^BQ, ^BX and ^BY commands.

Frequently Asked Questions

What is ZPL?

ZPL (Zebra Programming Language) is the command language used to design and print labels on Zebra and ZPL-compatible thermal printers. A ZPL label is plain text made of caret-prefixed commands (for example ^FO and ^FD) that start with ^XA and end with ^XZ.

What is ZPL used for?

ZPL is used to lay out and print shipping labels, barcodes, product tags, and asset labels. Because a label is just text, ZPL can be generated by software (WMS, ERP, e-commerce) and sent straight to the printer, which renders the text, barcodes, and graphics at the chosen print density (dpmm).

What does a ZPL label look like?

A minimal label is ^XA ^FO50,50 ^A0N,40,40 ^FDHello World^FS ^XZ. ^XA starts the format, ^FO sets the position in dots, ^A0N chooses a scalable font and size, ^FD…^FS holds the field data, and ^XZ ends the label.

Is ZPL the same as EPL?

No. EPL (Eltron Programming Language) is an older, simpler Zebra language. ZPL II is the current standard and supports scalable fonts, 2D barcodes, and graphics. Most modern Zebra printers accept ZPL II; some also accept EPL for backward compatibility.

How can I view or test ZPL without a printer?

Use the ZPL Viewer: paste your code and see the rendered label instantly. You can adjust label size and print density, then export to PDF or PNG — no printer or install required.