Your barcode is valid. It still will not scan.

Paste a label, see it rendered, and get told what will go wrong when it prints. Nine free ZPL viewers render. None of them diagnose.

We do not store your labels.Checked in memory. Nothing is written down.

Your label
As it will print203 dpi
The label as the printer will produce it
Findings1 label · 203 dpi

This is our sample label, checked at 203 dpi for GS1 logistics. Paste your own and we will ask which printhead you print on — we do not guess, because guessing produces confident, wrong answers.

will failFLD-DPI-DESIGN-001^PW · offset 0 · label 1

This label was written for a 300 dpi printhead. On the 203 dpi printer selected, every dot coordinate covers a smaller distance — the label prints at 148% of its intended size and the barcode's X-dimension drops to 0.250 mm.

Rescale every coordinate, ^BY value and font height by 148, or send this label to a 300 dpi printer.

The 'it worked until we changed printers' class. 203 → 300 dpi is a 1.478× shift: content lands at about 68% of intended size. The address block still reads and the border still aligns, so it survives testing — and the barcode intermittently fails at the scanner gate.

will failBC-05^BY · offset 23 · label 1

The bar width is outside the GS1-128 range (0.495 mm to 0.940 mm, 0.495 mm target). At 203 dpi that means ^BY 4 or greater.

Raise ^BY to at least 4 at 203 dpi, or 6 at 300 dpi.

At 203 dpi ^BY2 — the power-up default — and ^BY3 both fail GS1.

will failBC-06^BC · offset 23 · label 1

This GS1-128 is shorter than the 31.75 mm GS1 requires. It may scan on a handheld and fail at a fixed scanner.

Set the height to at least 254 dots at 203 dpi, or 375 at 300 dpi.

will failFLD-C128C-ODD-001^BC · offset 23 · label 1

Subset C encodes digits in pairs. This payload has an odd number of digits, so the last one is dropped — the barcode prints, scans cleanly, and returns one digit short of the data underneath it.

Pad to an even digit count, switch to Subset B (>:), or let ZPL auto-select the subset.

Cloud Retailer help desk, "Zebra Label Missing Last Digit and/or Not Scanning All Digits in Barcode": odd-length codes such as EAN-13 lose the final digit — "subset C cannot process single digits, it MUST be in a pair." A customer-reported production failure, documented by a vendor.

will failGS-05^BC · offset 23 · label 1

This GS1-128 is missing the leading FNC1. Without it the symbol is a plain Code 128 and the scanner will not read the AIs.

Add FNC1 (>8) immediately after the subset start code, or use ^BC mode D.

will failBC-04^BC · offset 23 · label 1

Something is printed inside the barcode's quiet zone. The scanner cannot find the start of the symbol.

Move the neighbouring element away, or move the barcode.

Highest real-world scan-failure yield of any rule in this catalogue. Build the renderer for this one.