ZPL editor
Edit ZPL with a language-aware Monaco workspace built for label source.
- Syntax highlighting and formatting
- Parameter-aware command help
- Source-linked diagnostics
Take a label from raw Zebra Programming Language to a print-ready visual. Code, render, inspect, and arrange fields in one local workspace.
Editor, viewer, and designer
One source / three surfaces
Start in source code, inspect the rendered result, or select fields directly on the label. Every view stays synchronized, so you can move quickly without losing the underlying ZPL.
Edit ZPL with a language-aware Monaco workspace built for label source.
Render a live black-and-white label preview without sending code to an external API.
Work directly on supported fields while keeping the underlying ZPL synchronized.
01 / Live ZPL preview
The online ZPL viewer renders a deterministic one-bit raster locally as you type. Source-linked diagnostics, command documentation, formatting, and safety limits help you find problems before a label reaches a print workflow.
02 / Visual ZPL designer
Drag, resize, align, distribute, lock, hide, and reorder supported fields on a WYSIWYG canvas. Rulers, snapping, manual guides, layers, and property controls make precise label layout faster.
Start designing a ZPL label03 / Variable data and assets
Import CSV or JSON, bind columns to ^FN fields, preview each record, and turn ZPL into PNG batches. Images and fonts are managed in the same local workspace.
Import structured data and map columns to numbered ZPL fields.
Import workspace assets and manage their ZPL resource names.
Step through live record values before producing a batch.
Save ZPL, PNG images, batch PNGs, or a complete workspace ZIP.
Private by architecture
ZPLr parses, renders, and edits labels on your device. Your ZPL and imported data never leave this browser for processing. There is no account, upload API, or server-side label processing.
Label source and imported datasets are processed by the browser application.
Open the editor and begin working without creating a profile.
Inspect the MIT-licensed code and integrate the same engine yourself.
04 / JavaScript and TypeScript ZPL library
Use ZPLr as a Node.js ZPL renderer in backend jobs or as a browser library for local previews. Both entries share the parser, diagnostics, command capabilities, and deterministic raster model.
zplr · zplr/node// "zplr/node" exposes the same Node.js API.
import { renderZplPNG } from "zplr";
import { writeFile } from "node:fs/promises";
const [png] = await renderZplPNG(source, {
printDensity: 8,
});
await writeFile("label.png", png);zplr/webimport { renderZpl } from "zplr/web";
const job = await renderZpl(source);
const canvas = job.labels[0].canvas;
document.querySelector("main")?.append(canvas);Built for real label work
Inspect addresses, tracking barcodes, routing blocks, and print dimensions.
Build UPC, EAN, Code 128, Data Matrix, QR, and item-label templates.
Bind CSV or JSON records to ^FN fields and preview every variation.
Embed ZPL parsing and rendering in Node.js services or browser interfaces.
Frequently asked questions
Need implementation details? The project documentation covers command support, diagnostics, limits, and runtime APIs.
A ZPL editor helps you write and inspect Zebra Programming Language label source. ZPLr combines source editing, command guidance, diagnostics, live rendering, and visual field editing in one browser workspace.
Yes. ZPLr runs the parser and renderer locally in your browser, so the online ZPL viewer does not need to send your label source or imported data to a rendering server.
Yes. Supported fields can be selected, dragged, resized, aligned, reordered, locked, hidden, and edited through layers and property controls while the ZPL source stays synchronized.
Yes. Import zplr or zplr/node for Node.js, and zplr/web for browser projects. Both entries expose typed parsing and rendering APIs built from the same engine.
Yes. You can export the active label as PNG, generate PNGs for variable-data records, save the ZPL source, or download a workspace ZIP containing labels, datasets, and assets.
ZPLr recognizes more than 200 commands across rendering, state, storage, control, and compatibility categories. The public command-support document records which commands are supported, partial, or recognized without rendered output.
Ready when you are
Open the editor with a working shipping-label example, then change the code, move fields visually, or connect variable data.
Open the free ZPL editor