Noviilo

ZPL Viewer

Runs locally

Paste ZPL (Zebra Programming Language) label code to preview it as an image, right in your browser. Unlike most ZPL viewers, this one never sends your label data to a server — parsing and rendering both happen locally on a canvas.

Your data is processed locally in your browser and is not uploaded.

Learn more about this tool⌄

How it works

The viewer parses ^XA...^XZ label formats and draws text, boxes/lines, and Code 128 barcodes onto an HTML canvas sized to the label's dots. If your ZPL doesn't set ^PW/^LL, you can pick a default label size. You can then download the result as a PNG or a PDF, both generated locally in your browser.

Common use cases

  • Previewing a label before sending it to a Zebra printer
  • Debugging ZPL generated by a WMS, ERP, or shipping platform
  • Learning ZPL by seeing immediate visual feedback
  • Reviewing label templates without a physical printer on hand

Frequently asked questions

Does this send my ZPL to a server, like Labelary does?
No. Unlike server-based ZPL viewers, this renders entirely in your browser using canvas — your label data never leaves your machine.
What ZPL commands are supported?
Text fields (^A, ^CF, ^FW, ^FH, ^FO, ^FT, ^FD), graphic boxes and lines (^GB), Code 128 (^BY, ^BC), QR codes (^BQ), and PDF417 (^B7). Other barcode types such as ^BX (Data Matrix) show as a dashed placeholder box where they'd appear, and other unrecognized commands are listed under the preview.
Can I download the label, not just preview it?
Yes — use the Download PNG or Download PDF button under the preview. The PDF is generated locally in your browser too; its physical page size is based on the dpi of the label size preset you selected.
Why doesn't my barcode data render?
Code 128 Subset B (the mode used here) supports ASCII 32-126 — standard letters, digits, and common punctuation. Other characters aren't currently supported.
My ZPL doesn't specify a label size — what happens?
Pick one of the size presets above the input (label sizes are usually fixed by your printer setup, e.g. 4×6in at 203dpi), and it's used whenever the ZPL itself doesn't include ^PW/^LL.

We use optional analytics and advertising cookies. Tool inputs are never affected — see our cookie policy.