Everything you need to know about FCKZPL
FCKZPL is a free online ZPL II (Zebra Programming Language) viewer and renderer by Cognitys. It converts ZPL label code into PNG and PDF images in real-time.
It supports 50+ ZPL commands, 22 barcode formats, custom font upload, and provides a Labelary-compatible REST API.
Yes, completely free. No registration, no API keys, no usage limits (fair use applies). The web viewer and API are available to everyone.
Yes. FCKZPL provides a Labelary-compatible REST API. You can replace api.labelary.com with fckzpl.com in your existing code — the URL pattern, request format, and response format are identical.
# Before
curl -X POST http://api.labelary.com/v1/printers/8dpmm/labels/4x6/0/ -d @label.zpl
# After
curl -X POST https://fckzpl.com/v1/printers/8dpmm/labels/4x6/0/ -d @label.zpl
No. ZPL code is processed in real-time and never stored on our servers. Custom fonts uploaded via the interface are held in memory only for the duration of the rendering request and immediately discarded.
1D barcodes: Code 128 (^BC), Code 39 (^B3), Code 93 (^BF), EAN-13 (^BE), EAN-8 (^B9), UPC-A (^B7), UPC-E (^B8), ITF (^B5), CODABAR (^BB), MSI (^BH), GS1-128 (^BD)
2D barcodes: QR Code (^BQ), DataMatrix (^BX), Aztec (^BO), PDF417 (^BP), MaxiCode (^BS)
Postal: POSTNET/PLANET (^BG), Intelligent Mail (^BN), Japan Post (^BJ), Canadian Postal (^BK), Korean Postal (^BL), Dutch KIX (^BM)
Font 0, G, Q: Swiss 721 BT Regular (scalable TrueType, similar to Helvetica)
Fonts P, R, S, T, U, V: Swiss 721 BT Bold
Fonts A-H: Bitmap dot matrix fonts
Font N: Google Noto Sans (Latin, Cyrillic, Greek)
Font J: Google Noto Sans CJK (Chinese, Japanese, Korean)
Font L: Google Noto Sans Arabic
Yes. Click the Font button to upload TTF/OTF files, then use the ^CW command to assign them to a designator:
^CWX,R:MYFONT.TTF ^FX assign MYFONT to designator X
^FO50,50^AXN,40,40^FDCustom text^FS
The font name must match the uploaded filename (without extension, uppercase). Fonts are sent with each render request and are not stored on the server.
POST your ZPL to the Labelary-compatible endpoint:
curl -X POST https://fckzpl.com/v1/printers/8dpmm/labels/4x6/0/ \
-d "^XA^FO50,50^A0N,50,50^FDHello^FS^XZ" \
--output label.png
For PDF output, add -H "Accept: application/pdf".
See the full API documentation for all options.
6dpmm = 152 DPI — low density
8dpmm = 203 DPI — standard (most common Zebra printers)
12dpmm = 300 DPI — high density
24dpmm = 600 DPI — ultra high density
Yes, the maximum request body size is 10 MB. This applies to ZPL text and font uploads.
50+ commands including:
Fields: ^FO, ^FT, ^FD, ^FS, ^FB, ^FH, ^FR, ^FN, ^FW, ^FP
Fonts: ^A (A-Z, 0-9), ^CF, ^CI, ^CW
Graphics: ^GB, ^GC, ^GD, ^GE, ^GF, ^DG, ^XG
Label: ^LH, ^LR, ^LT, ^LS, ^PW, ^LL
Barcodes: ^BY, ^BC, ^BX, ^BQ, ^BO, ^BP, ^BS, and 16 more
Other: ^SN (serialization)
PNG: Click the PNG button (supports rotation)
PDF: Click the PDF button (supports rotation, vector quality)
ZPL: Click the ZPL button to download the source code
Permalink: Click Permalink to copy a shareable URL with your ZPL and settings
The Labelary overlay checkbox fetches a render from the Labelary API and overlays it on your FCKZPL render at 50% opacity. This lets you compare both renderers side-by-side to spot differences.
Last updated: March 2026 — Cognitys