RunTheTests
/

Label Printer Test (ZPL)

Print a diagnostic label that shows dead printhead elements, weak darkness and wrong sizing.

How this talks to your device

The page builds a ZPL test label for the size and resolution you choose, shows the code, and sends it to a printer you pick from the browser's chooser. Every element on the label is there to expose a specific failure rather than to look tidy. The full-width border box reveals dead printhead elements: a thermal head is a row of individually heated dots, and one that has failed leaves a white line running the length of the label, with its position across the label telling you where on the head the fault is. The Code 128 barcode is the first thing to stop scanning when darkness is too low or print speed too high — it fails long before text looks visibly wrong, which is why a barcode that will not scan on an otherwise fine-looking label is such a common complaint. Text at two sizes shows smearing, which appears in the small text first when the head is dirty or the media is wrong. Positioning is in dots throughout, with the resolution as a required input, because that is how ZPL works and assuming 203 dpi would be wrong on every 300 dpi printer.

What the results mean

A white line through the border box
A dead printhead element. Where the line falls across the label is where the fault sits on the head. It does not heal, and cleaning will not bring it back — the head is a consumable.
The barcode will not scan, but text looks fine
Darkness too low or print speed too high. The barcode always fails first because scanning depends on sharp bar edges, which is a much tighter tolerance than legible text.
Smeared or blurred small text
A dirty printhead, or media the printer is not set up for — direct thermal stock in a printer set for thermal transfer, or the wrong ribbon.
The label is the wrong size or runs off the edge
The resolution set here does not match the printer, or the printer has not calibrated to the media. ZPL works in dots, so 203 dpi content on a 300 dpi head comes out at two thirds size.

Common problems and fixes

The printer feeds a blank label
It is probably not speaking ZPL. Zebra printers can be configured for EPL, and other manufacturers use their own languages entirely. Check the printer's configuration label — holding the feed button on power-up prints one on most models.
Labels come out at the wrong size or skip
Run the printer's media calibration, which is usually a button sequence or a menu item. A printer that has not calibrated to the gap or notch on your media cannot know where one label ends and the next begins.
The print is faint everywhere
Raise the darkness and re-run. If the whole label stays faint at maximum darkness, the head is worn or the media is not matched to the printer's mode — direct thermal stock will barely mark in a thermal transfer setup.
The printer is not in the chooser
Only devices identifying as the USB printer class appear there, and a printer installed with a vendor driver is frequently claimed by that driver and unavailable to the browser. This is an operating-system restriction rather than a browser one.

Frequently asked questions

What is ZPL?

Zebra Programming Language, the command language Zebra label printers speak and which many other manufacturers implement for compatibility. It is plain text: commands begin with a caret, coordinates are in dots, and a label is bracketed by ^XA and ^XZ. That readability is why the code is shown here rather than hidden.

Why does resolution matter so much?

Because ZPL has no unit but the dot. A box 800 dots wide is four inches on a 203 dpi printer and two and two-thirds inches on a 300 dpi one. There is no way for the label to adapt — the resolution has to be known when the label is built, which is why it is an input rather than something guessed at.

Can this tell me if my printhead is failing?

The printed label can, and that is the point of the border box. A missing dot column shows as a white line, and comparing labels over time shows whether more elements are failing. The page itself cannot see any of this — a printer does not report head condition, and no web page can read it.

Can I use the ZPL without a printer connected?

Yes, and it is worth doing. Copy it into any ZPL preview tool to see the label rendered, or send it through whatever path you normally use. The code is the durable part; WebUSB is just one way to deliver it.

More in Label