ZPLToolkit
11 scannable symbologies

Generate barcode and QR Code ZPL

Choose a symbology, tune its print dimensions and get correct ZPL with a real local preview — no printer or external rendering API required.

610 × 406 dots

01 / Configure

Symbol settings

^BC reference

02 / Generate

Ready-to-use ZPL

^BC
ZPL output mode

Includes ^XA, ^PW, ^LL and ^XZ, ready to send as a complete label.

03 / Verify

Real preview

Local renderer
Rendering the symbol…
Open in Viewer

Print-readiness diagnostics

The full label is checked for invalid parameters, clipping and insufficient quiet zones.

no errorsno warnings

No errors or warnings in the generated label.

Command-aware

Parameters in the right slots

Each ^B* command has its own parameter order. The generator reads the same symbology contract as the renderer and linter.

Scanner-ready

The actual symbol, not a placeholder

The local renderer uses the generated ZPL to draw Code 128, QR, EAN, PDF417, Data Matrix and the other supported symbols.

Browser-only

Label data stays on your device

Generation, validation and preview happen in the browser. Shared ZPL travels in the URL fragment and is not sent to the server.

Frequently Asked Questions

Which symbology should I use?
Code 128 for general data, because it is dense and every scanner reads it. Use a specific symbology only when something else requires it — a retail GTIN needs EAN or UPC, a GS1 application identifier needs GS1 DataBar or Data Matrix.
Why does my data not encode?
Most symbologies accept only part of the character set. Code 39 has no lowercase, the 2 of 5 family is digits only, and the retail symbologies need an exact digit count. The form reports which rule your data broke.
Can I get just the field instead of a whole label?
Yes — switch the output to the field only, and you get the ^BY and ^B* lines to paste into a format you already have.