Visual design
Drag & drop label designer with mm ruler, grid, snapping and live preview. Text, barcodes, QR, RFID, images and shapes.
zplCloud.com is the cloud platform for ZPL label workflows: design labels visually, preview them instantly as PNG / PDF / SVG, generate production Zebra Programming Language (ZPL)™, and push it directly to real Zebra™ printers or compatible - on your network or in the field with direct Cloud Connect / Weblink or our zplCloud Proxy.
Business and Enterprise features include team collaboration, batch printing, API access and remote printer management.
Centralize control, modernize your cloud architecture, and route ZPL seamlessly across your entire enterprise and beyond.
No login required · Test what you get
REST API
api.zplcloud.com
Authenticate with an API key (X-API-Key or Basic Auth), render designs by ID, list printer profiles and generate Weblink certificates - with usage metering built in.
/api/scalar
$ curl -u sk_zplcloud_xxxx: \
-H "Content-Type: application/json" \
-d '{"records":[{"sku":"88-12345"}]}' \
https://api.zplcloud.com/v1/zpl/render/design/42
# response
{
"format": "png",
"bytes": 120423,
"zpl": "^XA^FO100,100^BY3^BCN,100,Y,N,N^FDzplCloud^FS^XZ",
"ms": 18
}
REST API
Authenticate with an API key (X-API-Key or Basic Auth), render designs by ID, list printer profiles and generate Weblink certificates - with usage metering built in.
/api/scalar$ curl -u sk_zplcloud_xxxx: \
-H "Content-Type: application/json" \
-d '{"records":[{"sku":"88-12345"}]}' \
https://api.zplcloud.com/v1/zpl/render/design/42
# response
{
"format": "png",
"bytes": 120423,
"ms": 18
}
Batch
Upload a CSV, paste data, point at a CSV URL (published Google Sheets work) or a JSON endpoint. Pick your saved design, choose page ranges, preview and print.
2-3, 2-3,5, 1-4,6-8Print Views
Turn any saved design into a protected print view under <b>print.zplcloud.com</b> - with an end-user form built in a visual form designer. Type or scan a barcode / QR code, get a live PDF preview and print to a connected <b>weblink printer</b>. Only accounts you grant access to can open the URL.
https://print.zplcloud.com/d/{design}.{id}/{view} - login required, access per accountAI
zplCloud renders labels on demand - so your AI agent or app can create production-ready ZPL without any labeling logic. Send product data, get a printable label back.
Design your first label in minutes. Preview it as PNG, PDF and SVG, generate production ZPL and send it to a real Zebra printer.
Label Designer
Design on a millimetre ruler with grid, snapping and zoom up to 300 %. Add text, barcodes, QR codes, GRF images, SVG icons, RFID tags and shapes - then push the exact same ZPL to your printer.
ZPL modes - native printer fonts (^A…^FD), TrueType via ^GFA images, or literal ^A@@ / ^FB.
RFID element - EPC Class 1 Gen 2 tag with SGTIN-96 data structure; GTIN + serial → EPC hex encoder with decode roundtrip.
Data binding - bind fields to CSV / JSON columns via $field and test with a built-in JSON record editor.
Templates & teams - gallery with search and tag filter (adresse, artikel, chemie, preis, versand), 60-step undo/redo, groups, lock & hide, auto-save to localStorage.
FAQ
No. You can design and preview labels as PNG, PDF and SVG in the browser without any hardware. Printing is available the moment you connect a printer - locally, via the Weblink relay or through a remote CLI agent.
A zplCloudCli agent runs on any machine in the printer's LAN (PC, Raspberry Pi, Synology, Docker) and opens a single outbound WebSocket connection to our backend - TeamViewer-style. No inbound ports, no port forwarding, no firewall changes on the customer side.
30+ verified symbologies including QRCode, DataMatrix, Pdf417, Aztec, MaxiCode, EAN/UPC, Code128/39/93, GS1-128, Postnet and Planet - all verified for correct ZPL output.
Yes. The designer includes an RFID element for EPC Class 1 Gen 2 tags with the SGTIN-96 data structure - GTIN + serial are encoded to EPC hex with a full decode roundtrip, and output as ^RS / ^RB / ^RFW ZPL.
The relay proactively probes every printer with ! U1 getvar "device.unique_id", tracks per-printer keepalive timestamps, cleans up duplicate connections and re-sends failed jobs from the queue.
German, English and Portuguese. Light and dark themes follow your OS preference automatically and all UI strings live in a single translation dictionary.
The complete ZPL toolkit
Visual designer, code roundtrip, printer tools, batch printing, webhooks, push notifications, certificate management and a hosted printing relay.
Drag & drop label designer with mm ruler, grid, snapping and live preview. Text, barcodes, QR, RFID, images and shapes.
PNG, PDF and SVG rendered server-side from the exact ZPL the printer receives - nothing hidden, nothing guessed.
Send ZPL straight to Zebra printers via TCP 9100, the printer WebUI or the Weblink relay - queued or immediate.
Design → C# (ThermalLabel SDK) → Design, lossless and versioned. Generate, import and export real .NET console projects.
CSV / JSON data → thousands of labels, Chrome-style page-range selection, one-click print to any connected printer.
Webhooks with HMAC signing, ZPL-by-email and push to ntfy, Gotify, Signal, Telegram, WhatsApp and Web Push.
On-premises printers reachable through the Weblink relay or outbound CLI proxy agents - no inbound ports, no firewall changes.
API keys, usage metering, per-host branding, team roles, Let's Encrypt TLS and ACME printer certificates.
CloudToBrowserPrint
zplCloud2BrowserPrint is a local print service (127.0.0.1:9100) for Windows, macOS, Linux and Raspberry Pi: web pages find printers on the LAN and print ZPL, PDF, Office files, images and barcodes - directly from the cloud with the label designer, an alternative to CLI/Proxy and Cloud Connect: automated, in batch and without desktop software.
$ curl -fsSL https://zplcloud.com/install-cloudtobrowserprint.sh | sh
# Windows (PowerShell, no admin):
PS> irm https://zplcloud.com/install-cloudtobrowserprint-pshell | iex
# start:
$ zplcloud2print
$ zplcloud2print --service-install
# Linux/Pi: systemd "zplcloud2print.service"
# Restart=always · starts at boot
# macOS: launchd LaunchAgent (KeepAlive) · at login
# Windows: scheduled task · at login, no admin
# uninstall:
$ zplcloud2print --service-uninstall
| Feature | Windows | macOS | Raspberry Pi | Linux x64 |
|---|---|---|---|---|
| PDF / images / Office → ZPL | ✓ | ✓ | ✓ | ✓ |
| Barcode decoding | ✓ ZBar | ✓ Vision | ✓ ZBar | ✓ ZBar |
| Printing: spooler / CUPS / network / Bluetooth | ✓ Spooler+TCP+BT | ✓ CUPS+TCP+BT | ✓ CUPS+TCP+BT | ✓ CUPS+TCP+BT |
| Bidi: Serial / Parallel / IPP | ✓ all | ✓ Serial+IPP | ✓ Serial+IPP | ✓ Serial+IPP |
| HTTPS certificate (trust store) | ✓ Store | ✓ Keychain | ✓ NSS | ✓ NSS |
| As a service (restart on reboot) | ✓ schtasks | ✓ launchd | ✓ systemd | ✓ systemd |
Formats & symbologies
Verified for correct ZPL output - from retail EAN/UPC to 2D codes and postal symbologies.
| Output format | Preview | Export |
|---|---|---|
| ZPL (native ^XA…^XZ) | ✓ | ✓ |
| PNG / PDF (multi-page) / SVG (vector) | ✓ | ✓ |
| C# code (ThermalLabel SDK) | ✓ | ✓ |
| Console project (ZIP with csproj + Program.cs) | - | ✓ |
| GRF printer graphic + EPC / RFID (SGTIN-96) | - | ✓ |
| Group | Symbologies |
|---|---|
| 2D | QRCode, DataMatrix, Pdf417, AztecCode, MaxiCode |
| Retail (EAN/UPC) | Ean13, Ean8, UpcA, UpcE |
| Linear | Code128, Code39, Code93, Code11, Code49, Codabar, Msi, Plessey, Industrial2of5 |
| GS1 / Postal | Ean128 (GS1-128), Postnet, Planet |
ZPL
We can do it all: fonts and graphics stored right on the printer, keeping payloads small. Everything is provisionable and manageable on your printers via our management tools - also per profile.
Anyone can send bulky PNG or PDF images with huge payloads to the printer. We can do that too - but we can also deliver performance when it comes to unique mass labels (e.g. RFID) that need to fly out of the printer.
SVG → TTF
Mass bulk without the payload wall. Your logo and icons become one tiny TrueType font on the printer: upload the SVGs, we generate the TTF, push it once to exactly the printers you want - done. From then on every label carries a single glyph reference instead of kilobytes of graphics.
Upload SVGs
Drop in your logo and icons - or build a new letter logo from a single letter.
We generate the font
Each icon becomes a glyph on a private Unicode code point (U+E000…). 3 glyphs ≈ 3 KB.
Update the printers - done
One click pushes the font to exactly the printers you select - per fleet or per profile. Every label that follows just works.
Available from Starter to Enterprise
Same icon, two ways
GRF image vs. TTF font
| Payload per label | ≈ 10,340 B | ≈ 125 B |
|---|---|---|
| Upload | with every label | once · 3 KB |
| 10,000 labels | ≈ 101 MB | ≈ 1.2 MB |
| Quality | fixed resolution | vector · any DPI |
| Print speed | graphics decoding | text speed |
U+E000 · U+E001 · U+E002
Printer update
3 printers updated · 1 click
Zebra printer tools
Probe connectivity, read the full SGD configuration with German labels, browse the curated command database, upload files and fonts, and render previews through a real printer's WebUI.
Printers connect outbound via WebSocket; ZPL is queued, kept alive and re-sent automatically on failure.
zplCloudCli proxy on any LAN machine - TCP 9100 or USB - opens one outbound connection. No inbound ports.
Root CA, server and per-printer certificates (NRD / PFX), 1-20 year validity, CRL revocation, one-click deploy.
Per-printer opt-in: failed jobs are reprinted automatically, straight from the queue.
How remote printing reaches the printer
TeamViewer-style: the customer side only opens an outbound HTTPS/WSS connection - no firewall changes, no port forwarding, no inbound exposure.
RFID / EPC
Encode and print RFID tags directly with zplCloud - EPC data structures, ASCII and HEX payloads on ZPL and Fingerprint printers, with the ecosystem of your choice.
Only available for ZPL & Fingerprint printers.
SGTIN-96 and friends - GTIN + serial number become a 96-bit EPC hex, encoded and decoded right in the designer.
Write ASCII or raw HEX data to the tag - flexible for every workflow, from retail EAS to item-level logistics.
RFID items render natively on ZPL (select, write, read, erase) and Fingerprint printers - no extra hardware or middleware.
EPC / SGTIN-96 encode & decode with a full roundtrip - no external tools, no guessing.
Bind tag data to CSV/JSON columns like any other field - thousands of RFID labels in one batch run.
The printed tags work with the RFID infrastructure you already run - Nedap, Checkpoint, Sensormatic, Impinj and R-PAC are no problem.
^XA
^RS8 ; select EPC Class 1 Gen 2 tag
^RFW,H,1^FD3076215F0C5D974000000001^FS ; write 96-bit EPC (SGTIN-96) as HEX
^RFR,H,1^FS ; read back / verify
^XZ
Tags and EPCs generated by zplCloud integrate with the major EAS / RAIN RFID infrastructures.
Tags and EPCs generated by zplCloud integrate with the major EAS / RAIN RFID infrastructures.
All features
Designer, converters, print control, batch, webhooks, push and API - everything in one platform. New features are marked with NEW.
mm ruler, 1-mm grid, snapping, zoom up to 300 %, rubber-band multi-select and debug lines.
Text, barcode, QR code, GRF image, SVG icon, line, diagonal line, circle, ellipse, rectangle and RFID/EPC tag.
Native printer fonts (^A…^FD), TrueType as ^GFA image or literal ^A@/^FB - selectable per text field.
Bind fields to CSV/JSON columns via $field, with an integrated test-data editor and HideIfEmpty.
Element groups, lock, hide, skip-render and 60-step undo/redo - nothing is lost.
mm/inch toggle across the whole UI (model stays mm), DPI presets 203/300/600 + custom.
Search with tag filter, autocomplete and preview - adopt ready-made layouts in one click.
Design JSON with schemaVersion and automatic migration chain - old designs are migrated on load.
21+ symbologies: data + DPI → ZPL and PNG preview, download and raw print directly via port 9100.
mm/inch ↔ dots, label size in pixels, pt ↔ dots and barcode module width - with 203/300/600 reference.
Validates ZPL for errors with line/column - before it reaches the printer.
Explains every command and predicts print time, mesh size and render duration.
Convert existing ZPL back into an editable designer design (roundtrip).
RFID encoder/decoder: GTIN + serial number ↔ 24-digit EPC hex with full decode roundtrip.
Any printer language (ZPL/EPL2/EasyPlug/PCL) raw to port 9100 - for Zebra, Avery, Novexx and CAB.
Printers connect outbound via WebSocket; ZPL is queued, kept alive with keepalives and retried automatically.
zplCloudCli on any LAN machine - TeamViewer style, no inbound ports, no firewall changes.
SGD configuration with German labels, command DB, firmware, WiFi setup, diagnostics and file upload.
Root CA, server and printer certificates (NRD/PFX), CRL revocation and one-click deploy.
Reusable printer profiles with variables plus a ZPL cookbook with 200+ commands.
CSV/JSON → thousands of labels, Chrome-style page ranges (2-3,5), live PDF preview, one-click print.
Central print queue with status, responses and per-printer opt-in auto-reprint after errors.
Convert SVG icons and graphics into monochrome GRF ZPL commands.
Convert PDF pages into printable ZPL graphics - including preview PDF.
Render HTML in the browser and output it as monochrome ZPL (threshold/dithering).
Convert PNG/photos with Floyd-Steinberg dithering into printer graphics.
Convert Eltron printer language (text, barcodes, boxes, graphics).
Convert Datamax printer language (text, barcodes, boxes, graphics).
Convert TSC printer language (TEXT, BARCODE, QRCODE, BOX, LINE).
Design ↔ ThermalLabel SDK code, lossless and versioned; ZIP export as .NET console project.
api.zplcloud.com with API keys, usage metering and rate limits - /v1/fonts, /v1/zpl/*, /v1/printer-profiles.
HMAC-signed events with retry backoff (1/5/30 min) and delivery overview.
Send designs directly from the workflow as email.
ntfy, Telegram, Gotify, Signal, WhatsApp, WhatsApp-QR and Web Push - all from one UI.
Live API documentation with try-it - at /api/scalar.
Free tutorials on barcodes, QR, fonts, graphics and print control at /guides.
Invitations and roles (Admin/Operator/Viewer) with access to company printers.
Title, logo, favicon and UI customization per domain via branding.json.
Saved designs with description, schema version and ⚠-hint for outdated layouts.
API usage, subscription status and system overview at a glance.
Automatic HTTPS certificates (HTTP-01) for all zplcloud domains plus ACME printer certificates.
Password policies (2026 standard), email confirmation, anti-forgery and JSON error handling.
Design labels by drag & drop - text, barcodes, QR, images, RFID and shapes, without writing ZPL by hand.
Preview as PNG, PDF and SVG, conversion and export - no installation, right in the browser.
German, English and Portuguese - all UI texts from one central dictionary, including dark mode.
ZPL to Zebra, CAB, Novexx and Avery - via TCP 9100, Weblink relay or remote agent without inbound ports.
Commands, sizes and printer guides plus ready-to-use label templates with ZPL code - all included.
EPL2/DPL/TSPL → ZPL, HTML/PDF/SVG → ZPL, C# code roundtrip, REST API, webhooks and 7 push channels.
Paste your ZPL into the viewer or open the full designer - and then print directly to your printer.
FAQ
Yes - the designer, all previews (PNG/PDF/SVG), the guides and the templates are free to use. Batch, webhooks and push only become paid with the Pro tier.
Yes. The ZPL tab shows your code, the ZPL analyser explains every command, and the PNG/PDF/SVG preview renders the label exactly as the printer prints it.
Yes - api.zplcloud.com with API keys, usage metering and OpenAPI docs at /api/scalar: /v1/fonts, /v1/zpl/* and /v1/printer-profiles.
Above all in the visual editor, the templates and guides, the language converters (EPL2/DPL/TSPL), direct printing to real printers as well as batch, webhooks and push - plus a modern, multilingual UI.
AI
Copy this prompt into an AI agent (ChatGPT, Claude, Copilot, Cursor …) - it reads zplcloud.com/SKILL.MD and builds the API print flow with a GTIN label for you.
zplCloud CLI
The zplcloud CLI applies printer profiles, sends raw ZPL (TCP 9100 / USB) and opens an outbound proxy agent for remote printers - without inbound ports or firewall changes.
zplcloud profiles apply 42 --target 10.0.0.5zplcloud send --target 10.0.0.5 --zpl "^XA…^XZ"zplcloud proxy --agent "Warehouse Berlin"$ curl -fsSL https://zplcloud.com/install-cli.sh | sh
$ zplcloud --version
zplcloud 1.x.y (osx-arm64)
$ curl -fsSL https://zplcloud.com/install-cli.sh | sh
$ zplcloud --version
zplcloud 1.x.y (linux-x64)
$ curl -fsSL https://zplcloud.com/install-cli.sh | sh
# auto-detects 32/64-bit (arm → linux-arm, arm64 → linux-arm64)
zplcloud 1.x.y (linux-arm64)
PS> irm https://zplcloud.com/install-cli-pshell | iex
>> Installing: %LOCALAPPDATA%\zplcloud\zplcloud.exe
zplcloud 1.x.y (win-x64)
Docker Compose
Runs on any Docker host: 64-bit Raspberry Pi, Synology NAS, Intel or Apple Silicon Mac. The image is multi-arch (linux/amd64 + linux/arm64), public and pullable without login - no .NET SDK needed.
The generated compose file below uses these values.
services:
zplcloud-agent:
image: docker.zplcloud.com/zplcloud-agent:latest
container_name: zplcloud-agent
restart: unless-stopped
environment:
ZPLCLOUD_API_KEY: "sk_zplcloud_CHANGE_ME" # from the API tab
ZPLCLOUD_AGENT: "PI" # name in Remote Printers
ZPLCLOUD_API_BASE: "https://api.zplcloud.com"
ZPLCLOUD_LOG: "true" # daily log file
volumes:
- agent-logs:/logs
- /dev/bus/usb:/dev/bus/usb # USB access (libusb)
privileged: true # simplest USB path
volumes:
agent-logs:
$ docker compose -f docker-compose.agent.yml up -d
✔ Container zplcloud-agent Started
Weblink
Download your printer's three Weblink NRD files and push them to the device via TCP 9100: ~DYE upload, SGD settings (URL, NTP, time) and reset - done. The script is generated server-side for your printer and requires a valid API key.
The generated commands below use these values.
PS> powershell -c "irm https://zplcloud.com/weblink-deploy.ps1?hostname=printer01&apikey=sk_zplcloud_XXXX | iex"
[2026-08-22 09:00:00] SUCCESS - certificates installed on the printer
$ curl -fsSL "https://zplcloud.com/weblink-deploy.sh?hostname=printer01&apikey=sk_zplcloud_XXXX" | bash
[2026-08-22 09:00:00] SUCCESS - certificates installed on the printer
$ curl -fsSL "https://zplcloud.com/weblink-deploy.sh?hostname=printer01&apikey=sk_zplcloud_XXXX" | bash
[2026-08-22 09:00:00] SUCCESS - certificates installed on the printer
$ curl -fsSL "https://zplcloud.com/weblink-deploy.sh?hostname=printer01&apikey=sk_zplcloud_XXXX" | bash
[2026-08-22 09:00:00] SUCCESS - certificates installed on the printer