Skip to main content

Label Converter

Choose what you have and what you need. Paste label code or upload a file, and LabelZoom converts between Zebra, Eltron, TSC, Datamax, Intermec and SATO printer languages, PDF documents, images, and its own XML and JSON label formats — in either direction.

Every supported pair is listed in the API conversion matrix. Common ones have their own pages: ZPL to PDF, PDF to ZPL, EPL to ZPL.

From
To
Paste your ZPL

Render Settings

Label Size

Result

ZPL → PDF

On-screen barcodes: A barcode that won’t scan off your screen isn’t necessarily wrong. Browser PDF viewers redraw the page at whatever zoom fits the window, and that rounding thickens or drops the hairline bars a scanner needs. The PDF keeps the exact geometry underneath — print it, or zoom in first, and the barcodes scan normally.

Note on Watermarks: Free online conversions include a LabelZoom watermark. Need to remove watermarks for production, or process thousands of labels per minute? Check out our REST API subscriptions

Ten formats on each side, chosen from two lists instead of hunting for the right page.

Migrate a template straight from one printer language to another, with no PDF in between.

Paid-only pairs are marked up front, so nothing fails after you press Convert.

How to convert a label

  1. 1

    Pick the format you have under From and the one you need under To. The address bar keeps the pair, so you can bookmark it or send it to a colleague.

  2. 2

    Paste your label code, or upload a file. Upload a PDF or image and the source switches to match; paste code that looks like a different language and the converter offers to switch before it sends anything.

  3. 3

    Press Convert. Code results can be copied or downloaded with their own file extension, and PDFs and images preview in place with a download button beside them.

Start converting now

Frequently Asked Questions

Everything you need to know about converting between label formats with LabelZoom.

Which conversions can I run without paying?
Almost all of them. Any printer language, XML or JSON label can become any printer language, a PDF, an image or XML, and any PDF or image can become printer-language code or XML. Two families need a paid plan: exporting to JSON, and converting between two image or PDF formats, such as PDF to PNG. Those options stay visible in the lists with a Paid badge, so you can see what a plan adds. Free results may carry a LabelZoom watermark.
When should I use a format-specific converter instead?
When one exists for your pair, it is usually the better starting point. Pages like PDF to ZPL or EPL to ZPL explain the quirks of that one conversion, carry examples for that printer family and open ZIP archives. This page is for everything they do not cover: moving a template from one printer language straight to another, working with LabelZoom XML or JSON, or checking a combination before you build it into an integration.
What are LabelZoom XML and JSON?
They are the label model the engine converts through, written out as a document. Every conversion reads the source into that model and writes the target from it, so exporting a label as XML or JSON gives you its fields, fonts, barcodes and positions in a form your own software can read or generate. The XML form has a published schema, and either one can be sent back in as a source.
Do the render settings apply to every conversion?
They apply when the source is label code. Print density and label size tell the engine how to lay out a printer language, XML or JSON label, so they appear under the editor for those sources. A PDF or an image already carries its own geometry, so the settings disappear when you pick one of those as the source and the file is converted as it is.
Can I automate the conversion I just ran?
Yes. The page calls the same REST API your systems can call: one request per conversion, with the source and target formats in the path. The conversion matrix on the API page lists every supported pair, and the official SDKs for .NET, Node, Java, Python, PHP, Go, Ruby and Rust wrap the call so a production integration is a few lines of code.