Guides
ZPL guides
10 guides on printing, previewing and fixing ZPL labels. Every example opens in a tool on this site, with nothing uploaded anywhere.
Troubleshooting
- The label comes out blankBlank labels have four common causes, and they are quick to tell apart: the format never closed, the media type is wrong, the darkness is too low, or the printer is feeding past your label.
- The bar code prints but will not scanA bar code that looks right and reads as nothing usually fails on one of four things: quiet zone, module width, print quality, or a symbology the scanner was never told to read.
- The label is cut off at the edgeContent that runs off the label is either a field placed past the print width, a print width that does not match the media, or an origin shift that moved everything at once.
- ^FD data does not appear on the labelA field whose data never prints is usually missing its ^FS, carrying a caret in the data, or drawing in white on white.
- The printer prints the ZPL code instead of the labelPages of ^XA^FO50,50 instead of a label mean something between you and the printer is treating the ZPL as a document to typeset rather than as commands to obey.
- Calibrating a Zebra printerCalibration is how the printer learns where your labels start. It is the fix for blanks, creeping prints and labels that stop in the wrong place — and the wrong fix for everything else.
Limits and alternatives
- Free ZPL viewers, comparedWhat the free ZPL preview tools actually differ on: where your label data goes, what happens when you paste a lot of them, and which commands each one draws.
- “Request rate limit exceeded” when rendering ZPLWhat a per-second rate limit on a ZPL rendering API means, the three ways around it, and how to stop hitting it at all.
- “Daily request quota exceeded” when rendering ZPLWhy a daily quota cannot be waited out the way a rate limit can, and what to change when a batch of labels is bigger than the day's budget.
- “Maximum label count exceeded” when rendering ZPLThis one is about the file, not the account: a single request carried more ^XA…^XZ pairs than the service renders at once. How to find out how many your file has, and how to split it.