← Guides & articles
ED
Eduard Diaz
IT technician at S-IE, an official Zebra partner · Updated

DPL vs ZPL: Datamax vs Zebra label languages (and how to convert)

Your Datamax label worked for years, but a replacement Zebra ignores it or prints the instructions as text. DPL and ZPL describe similar labels using different commands. Here is how to identify the source language and approach a Datamax-to-Zebra conversion.

Conceptual illustration of DPL and ZPL code cards above two generic label printers, with a conversion arrow.
AI-generated conceptual illustration; not photographs of Datamax or Zebra models.

What is ZPL?

ZPL means Zebra Programming Language. ZPL II label formats commonly start with ^XA and finish with ^XZ, with instructions such as ^FO for positioning and ^FD for field data. Both language families describe label content; neither name tells you the paper size, transport connection or resolution. A USB cable and an Ethernet connection can carry the same language, and a different cable does not translate it.

What is DPL?

DPL means Datamax Programming Language, the label-printer language associated with Datamax and Datamax-O’Neil. Honeywell acquired Datamax-O’Neil in 2015 and publishes DPL documentation for supported printers. DPL is used to describe text, barcodes and graphics on labels, tags and receipts; in this context, “DPL codes” means printer instructions.

The key differences

DPL uses control characters and positional field records; ZPL uses commands such as ^FO and ^FD. Their source instructions are not interchangeable. A USB or network connection transports the job but does not translate its language, and the same numbers do not necessarily represent the same physical positions.

Printer support depends on the exact model, firmware and active language mode. Some devices offer emulation, so verify the configuration before converting. The Datamax brand’s transition to Honeywell does not mean every Honeywell printer accepts every DPL command, or that a Zebra automatically accepts a Datamax job.

The key differences
FeatureDPLZPL / ZPL II
Full nameDatamax Programming LanguageZebra Programming Language (ZPL / ZPL II)
ManufacturerDatamax / Datamax-O’Neil → HoneywellZebra Technologies
Syntax / command example<STX>L … E^FO30,30^A0N,24,16^FDHELLO^FS
StatusDatamax language with documented support on selected printersDocumented Zebra language family; ZPL II support varies by model
Typical useLabels on Datamax and DPL-capable devicesLabels on Zebra printers and devices with ZPL emulation
How a file startsOften <STX>L for label-format mode; setup may precede itLabel format: ^XA … ^XZ (usual prefixes)

How to tell which one you have

Open a copy of the file in a text editor that can show control characters. DPL commonly enters label-format mode with <STX>L and prints a format with E; STX is the control byte 0x02, not the five literal characters <STX>. Other system commands can precede the label. ZPL labels usually have ^XA … ^XZ with fields such as ^FO and ^FD.

Look for fixed-position records after the DPL label start, rather than relying on a .dpl, .prn or .txt extension. Check the printer configuration report, manufacturer utility and model manual for supported languages and active emulation. Also check what the application or driver actually sends: file language and printer mode are separate questions.

If the printer prints code as text, the language or print path may be wrong. A text editor or driver can also render the commands as ordinary text instead of sending them as raw printer instructions.

Printer prints code or garbled text: troubleshooting

How to convert DPL to ZPL

Keep the original DPL and a known-good printed label. First check whether the label application can export ZPL directly. Otherwise open the converter, paste or upload one complete label, inspect the generated ZPL and compare its preview with your reference. Download the result only after reviewing every field.

The current converter translates a subset of text, barcode and simple shape records. It approximates fonts, skips print quantity Q and many setup commands, and does not reproduce a complete printer program or downloaded resources. It assumes simplified dot coordinates rather than fully interpreting DPL unit and positioning modes. A conversion without warnings is not proof of a faithful result.

Open the DPL-to-ZPL converter

The tool previews generated ZPL; it is not a full Datamax emulator. It accepts an actual STX or the visible <STX> notation and expects records separated by newlines. For an export using only carriage returns, normalize a copy to CRLF or LF before pasting, keeping the original untouched.

Check the result before printing a batch

Compare physical dimensions, field positions, rotations, accents, fonts and logos. DPL measurement modes and ZPL dots need explicit reconciliation; changing preview DPI does not rescale all generated coordinates. Check barcode symbology and decoded data, not just appearance. Rebuild unsupported elements in the ZPL editor if needed.

Print one label on the destination device with the real media. Measure it, scan its barcodes and confirm the number of copies. Stored graphics, printer settings and variable-data logic may need separate work. These are conversion checks, not a claim that the example has been tested on your hardware.

Frequently asked questions

Is ZPL better than DPL?

Neither is universally better. Both describe labels; the practical question is which commands your destination printer accepts. Conversion is useful when replacing a Datamax workflow with one that requires ZPL.

Can I convert DPL to ZPL?

Yes, for records supported by the converter. Treat the result as a starting point and check coordinates, units, fonts, barcodes and omitted resources before printing. Renaming a DPL file does not convert it.

How do I know which language my printer uses?

Check the exact model manual, configuration report and manufacturer utility for supported languages and active emulation. Also inspect the file and the output selected in your software: a printer can accept more than one language.

Why does my printer print the code as text?

Usually the job reached the printer as plain text instead of raw printer commands — often sent from a text editor or through the wrong driver or port. Send the DPL (or converted ZPL) as a raw stream to a printer set to that language.

Related guides

Official references

ED

About the author

Eduard Diaz

Eduard Diaz is an IT technician (development) at S-IE, an official Zebra partner with more than 20 years providing identification and labelling services. He builds and maintains EditorZPL to make working with ZPL and Zebra label printers easier.

s-ie.cat

Related tools