Launch

30% off your first month of Pro30% off month one$9.90 → $6.93

See plans
ZPL em PDF

Guide · .ZPL files

How to open a .ZPL file

Something handed you a file ending in .zpl — a carrier API, a shipping platform, a warehouse system — and double-clicking it did nothing useful. Windows offers to search the Store for an app; a text editor shows a wall of ^XA and ^FO. Nothing is broken and nothing is corrupt. A .zpl file is a set of drawing instructions for a thermal printer, and the only thing missing is something willing to draw them.

Checked on August 24, 2026

Open it here, in this tab

The converter on this page is a ZPL renderer that runs in your browser. It reads the commands the same way a printer would and paints the result, so you see the label without owning the printer.

  1. 1Drop the .zpl file onto the area below — or click to browse for it. The file is read locally; nothing is uploaded.
  2. 2Pick the density your printer uses. 8 dpmm (203 dpi) is the usual one for shipping labels; 12 dpmm is 300 dpi.
  3. 3If the file holds more than one label, step through them with the pager under the preview. One file routinely holds a whole day of orders.
  4. 4Export what you need: a PDF at the label's true physical size, a PNG at printer resolution, or a ZIP of PNGs.

Nothing installs and nothing uploads

The rendering engine is JavaScript running in this tab. Addresses, names and barcodes in the label stay on your machine — worth knowing before pasting a customer's shipping label into any online tool.

What is actually inside the file

ZPL stands for Zebra Programming Language. A .zpl file is plain text, and every label in it is a block that starts with ^XA and ends with ^XZ. Between those, each command begins with a caret and two letters, followed by its parameters.

So a line like ^FO50,50^A0N,40,40^FDACME Ltd^FS means: move to x=50, y=50; use scalable font 0 at 40 dots; the text is “ACME Ltd”; end of field. Read a few of them and the wall of symbols turns back into a label.

  • ^XA … ^XZ — the start and end of one label. Two blocks means two labels.
  • ^FO — field origin: where on the label the next thing is drawn.
  • ^FD — field data: the actual text or barcode payload.
  • ^FS — field separator: the end of the current field.
  • ^A, ^CF — which font, and how big.
  • ^BC, ^BQ, ^B3 — Code 128, QR and Code 39 barcodes.
  • ^GB, ^GF — boxes and lines, and embedded graphics.
  • ^PW, ^LL — the label's width and length in dots, which is how the renderer knows how big it is.

Why a text editor looks like gibberish

It isn't gibberish and the editor isn't failing — a text editor opens a .zpl file perfectly correctly. It just has no reason to know that ^BCN,100,Y,N,N means a barcode, so it shows you the instructions instead of the picture.

The same content also travels under other extensions. A .prn file is very often ZPL captured from a print queue, and plenty of systems write ZPL into a .txt. If the contents start with ^XA, it is a ZPL label whatever the file is called — and this page will open it.

One extra step catches people out: several carrier APIs return the label base64-encoded inside a JSON response. Decode that field first, save it as .zpl, and you have an ordinary label file.

Where .ZPL files come from

Almost nobody writes ZPL by hand. If you have a file, something in your stack produced it — and knowing which changes what you can do about it.

  • Carrier APIs. UPS returns a thermal label when the request asks for the ZPL image format, delivered base64-encoded alongside the shipment response; FedEx and USPS integrations offer the same choice.
  • ShipStation. ZPL is not a per-store toggle — support switches the whole account over, after which every label it produces is ZPL rather than PDF.
  • EasyPost, Shippo and similar. The label file format is a parameter on the request, with ZPL sitting next to PDF and EPL2.
  • A WMS or ERP. SAP, NetSuite and warehouse systems generally emit ZPL straight to a print queue, which is why the file you find is often a .prn nobody meant you to read.
  • Your own code. String templates that were never rendered by anything except the printer they were aimed at.
  • In Brazil, marketplaces. Shopee, Mercado Livre and Magalu hand ZPL directly to sellers, which is a market of its own — see the Portuguese guides.

The other .ZPL, which has nothing to do with printers

If the file is small, opens as XML and lists song titles, you have a Zune playlist. Microsoft's Zune software used the same three letters, and it is the reason generic “file extension” sites give such confusing answers for .zpl.

Zebra label files are the ones that begin with ^XA. That single check settles which kind you have.

Opening it without a browser

There are offline routes, and they are worth knowing if the label is confidential enough that you would rather not use any website — though rendering here already happens on your machine.

  • ZebraDesigner and Zebra Setup Utilities open and send ZPL, on Windows.
  • Any text editor shows the source, which is enough to check an address or a barcode payload.
  • If you own the printer, the file is already a finished print job — send it raw and skip rendering entirely. The next guide covers both cases.

Drop your .zpl, .prn or .txt file here

Drag the file in, paste the code, or pick it from your device

.txt · .zpl · .prn · .zip · .pdf · .png · .jpg — 30 labels a day

The conversion happens in your browser: your file never leaves your device.How that works
Free, no signupNo uploadNo watermarkBatches of many filesPDF · PNG · ZIP

Questions

Frequently asked questions

What program opens a .ZPL file?

Any text editor will show the source, and a ZPL renderer will show the label. This page is the second kind: drop the file and the label appears, with PDF and PNG export. On Windows, Zebra's own ZebraDesigner and Setup Utilities open ZPL too.

Can I open a ZPL file in Notepad?

Yes, and it opens correctly — a .zpl file really is plain text. Notepad just shows the printer commands rather than the label they draw, so it is useful for checking an address or a barcode payload and useless for seeing the layout.

Is a .prn file the same as a .zpl file?

Often, yes. A .prn is whatever was captured on its way to a printer, and for a Zebra that content is ZPL. If it starts with ^XA it will open here exactly like a .zpl. If it starts with something else, it is another printer language — PCL, EPL or PPLA — and this renderer will say so rather than guess.

My label file is base64 inside an API response. What now?

Decode that field and save the result as a .zpl file. Carrier APIs commonly return the label base64-encoded so it survives a JSON payload; the decoded bytes are an ordinary ZPL label.

Is my label data uploaded to a server?

No. The renderer is JavaScript in this tab, so the file is read on your own machine and the addresses inside it never travel. You can confirm it: open your browser's Network panel and convert a file — there is no request carrying the label.

Can I open a lot of ZPL files at once?

Yes. Drop a folder or a .zip and every .zpl, .txt and .prn inside is read in order, including archives nested in archives. A single file holding many ^XA…^XZ blocks is treated as many labels, which is what a day of orders usually looks like.

Other guides