← wiki

zpl-studio

overview

A Dymo-style WYSIWYG label designer for Zebra thermal printers. A flexible, template-based ZPL label printer with automatic variable detection and offline preview — el's fork and continuation of Cherry's original ZebraPrintLabel ("ZPL Printer Tool") project.

Templates use {{VARIABLE}} and {{VARIABLE:Display Label}} placeholders, which the app automatically detects and turns into input fields in the UI.

tech stack

Language: Rust (2021 edition).

GUI: egui + eframe — an immediate-mode UI framework.

Printing: Win32 API via windows-sys on Windows; CUPS via the cups crate on Linux. Both send raw ZPL data directly to the printer without driver processing.

Rendering: zpl-forge for fully offline ZPL-to-PNG rendering at 203/300/600 DPI, with no external API dependency.

Other: rfd for native file dialogs, regex for template variable extraction. Early Android support exploration is also in the repo (Kotlin), tracked in ANDROID_PLAN.md / ANDROID_STATUS.md.

development

Currently at v2.0.0 — the template-based rewrite with offline preview and automatic variable detection. GitHub Actions builds Windows (EXE) and Linux (AppImage) artifacts automatically on every push.

Follows KISS/DRY/YAGNI: single executable (~4-6 MB), no database, no network features, no user accounts — just loads templates and prints.