zplCore.comzplCore.com

Free Online ZPL Viewer & Label Linter

ZPLDrop a .zpl file or an image
/ –

The rendered label appears here.

Linter warnings (0)
  • None
    Ln 1, Col 1 Label – of – Rendered with zplCore · nothing is stored · FAQ

    Transform ZPL

    For a label designed for one feed direction: every field position and orientation is turned so that the label prints the other way round. Width and height swap for 90° and 270°.

    For another printer resolution: positions, sizes, fonts, barcodes and graphics are converted.

    The result replaces the editor content (Ctrl+Z undoes it).

    Tired of cloud rate limits or GDPR risks with customer data? Integrate this engine locally via NuGet in 5 minutes.

    FAQ

    How do I convert ZPL to PDF or PNG?

    Paste the ZPL into the editor above, choose the print density (203, 300 or 600 dpi) and the label size, then click PNG or PDF for the current label, Multi-label PDF for all labels (one vector page each), EPL or SVG. In your own software the same engine does it with the zplCore NuGet package: new ZplRenderer(settings).ProcessCommands(zpl) returns one PNG per label; with OutputFormat = ZplOutputFormat.Pdf it returns one PDF with all labels. Copy as C# code gives you exactly that call for the label on screen.

    Why are umlauts and other UTF-8 characters printed wrongly in ZPL?

    Without ^CI28 the printer reads the field data in its default code page (usually code page 850). Every character that UTF-8 stores in two bytes – ä, ö, ü, ß, é and so on – then prints as two wrong characters. Put ^CI28 at the start of the label and send the file as UTF-8. Characters outside Latin-1 (Cyrillic, Greek, CJK) also need a font that contains them, for example a downloaded TrueType font. The linter of this viewer warns about non-ASCII field data without ^CI.

    How do I render ZPL locally in .NET or Docker without an external cloud API?

    Add the zplCore package (dotnet add package ZplCore) and render with ZplRenderer – in process, offline, without per-label fees and without customer data leaving your network. As a service, run the zplcore/server container on your own host. Both are the engine behind this viewer. Get started with NuGet and Docker.

    Privacy and limits of this viewer

    Every preview is rendered on our server with zplCore. Your ZPL and your images are processed in memory for this one request and never stored or logged. Remember my last label keeps the ZPL and the settings only in your own browser (localStorage) – untick it to delete them. A share link carries the ZPL in the URL fragment (after #), which browsers never send to a server.

    Limits: ZPL up to 128 KB, labels up to 15 × 30 in, up to 50 labels per job, 60 renders per minute. The preview shows each ^XA … ^XZ format once (^PQ copies are not repeated). Fonts and files named in the ZPL are never loaded from the server. Shortcuts: Ctrl+Enter renders, Alt+←/→ pages through the labels; drop a .zpl file onto the editor to open it, drop or paste an image to convert it to ^GFA.

    What this ZPL viewer does

    • Everything you know from a ZPL viewer – print density 6/8/12/24 dpmm (152/203/300/600 dpi), grayscale or bitonal print quality, label size in inches, cm or mm, label index for multi-label jobs, animated rotation, permalink, downloads as ZPL, PNG, PDF, multi-label PDF and EPL, linter warnings.
    • Transform – turn a label to the other feed direction (every field position and orientation is recalculated, ^GF graphics are turned bit by bit) or convert it to another print density; the result replaces the editor content.
    • Format and context help – pretty-print the ZPL with one field per line, and see the description, parameters and an example of the command at the cursor.
    • Vector output – SVG of the current label and a vector PDF; cut lines of the cutter on request.
    • An editor, not a text box – syntax highlighting, line numbers, problems marked at their line; click a problem to jump to it.
    • Linter – unclosed labels, missing ^FS, elements outside the label, wrong EAN/UPC check digits, invalid ^GFA data, unescaped command characters, printer settings out of range.
    • Barcode check – the rendered barcodes are decoded again and compared with the field data, with a grade and frames on the preview.
    • Image to ZPL – drop a logo, choose size and dithering, insert the ^GFA graphic into the label.

    The same engine in your app or container

    This viewer runs on zplCore. Render ZPL to PNG, PDF and SVG in your own .NET code or as a self-hosted label server – offline, without per-label fees and without your data leaving your network.

    .NET 10 (NuGet)

    dotnet add package ZplCore
    
    var renderer = new ZplRenderer(new ZplRenderSettings { Dpi = 203 }.WithLabelSizeMm(101.6, 152.4));
    File.WriteAllBytes("label.png", renderer.ProcessCommands(zpl)[0]);

    Docker (linux/amd64, arm64)

    docker pull zplcore/server:1.0.0
    docker pull zplcore/designer:1.0.0

    zplcore/server: templates and data in, ZPL, PNG, SVG, PDF or print jobs out. zplcore/designer: the label editor with render API.

    Get started: NuGet and DockerDocumentationLive demo