- What is ZPL and why do I need it for a Zebra printer?
- ZPL (Zebra Programming Language) is the native command language that Zebra thermal printers understand. When you send ZPL commands to a Zebra printer — either via USB, network, or Bluetooth — the printer interprets and renders the barcode itself at full resolution, without needing a driver or print dialog. This produces sharper barcodes than printing a PDF image, especially at small label sizes.
- Which printers does ZPL work with?
- ZPL II is supported by all modern Zebra printers (ZD, ZT, GX, GK, GT, and LP series), as well as many third-party thermal printers that support ZPL emulation — including Rollo, SATO, Datamax, and Intermec models. Check your printer manual for ZPL II compatibility.
- What barcode formats can I export as ZPL?
- Bulk Barcode Generator exports ZPL II commands for all six supported formats: Code 128, EAN-13, UPC-A, Code 39, QR Code, and Data Matrix.
- How do I send a ZPL file to my Zebra printer?
- Connect your Zebra printer via USB, network (Ethernet or WiFi), or Bluetooth. On Windows, open a Command Prompt and run: copy /b your-file.zpl \\your-printer-name. On Mac/Linux, use: lpr -P PrinterName your-file.zpl. Some Zebra models also have a built-in web interface where you can paste ZPL directly.
- What DPI setting should I choose?
- Match the DPI setting to your printer's print head resolution: 203 DPI for standard Zebra printers (ZD220, ZD230, GX420), 300 DPI for high-resolution models (ZD420, ZD620, ZT230), and 600 DPI for precision industrial printers (ZT610, ZT620). Using the wrong DPI will make barcodes appear too wide or too narrow.
- Can I generate ZPL for hundreds of labels at once?
- Yes. Paste values one per line or upload a CSV/Excel file with any number of rows. The generator creates a single .zpl file containing all label commands — send it once to your printer and all labels print in sequence.
- Why does my EAN-13 or UPC-A ZPL label print the wrong number?
- Because Zebra printers calculate the check digit themselves. The
^BE command expects 12 digits and appends the thirteenth; ^BU expects 11 and appends the twelfth. Pass a complete 13-digit EAN-13 to ^BE and the printer treats your check digit as data, computes a new one, and encodes a different number than the text printed below it — a label that looks perfect but scans wrong. Our export strips the trailing check digit for both formats automatically, so full-length spreadsheet values are safe to paste.
- How do I actually send a .zpl file to my printer?
- On Windows, share the printer and run
copy /b labels.zpl \\localhost\ZebraPrinter, or paste the contents into Zebra Setup Utilities' direct-communication window. On macOS or Linux, use lp -d printer_name -o raw labels.zpl — the -o raw flag matters, as it stops the print system from trying to render the file as a document. Over a network, send the raw file to TCP port 9100 on the printer's IP. Rollo's desktop app accepts ZPL files directly.
- Does ZPL work on Rollo, SATO, or TSC printers?
- Yes. ZPL II is native to Zebra but Rollo, SATO, TSC, and Godex all support it through emulation, which is why it functions as the industry's de facto standard. What is not interchangeable is EPL, the older Eltron language found on some legacy Zebra hardware — an EPL-only printer will not interpret ZPL commands. Brother and Dymo use closed proprietary protocols and cannot accept ZPL at all; those printers need the PDF or PNG export instead.