Sign In
Products
ZPL PreviewBarcode GeneratorImage → ZPLZPL cheat sheetLabel DesignerTemplate Gallery
Developers
API QuickstartAPI ReferenceMCP ServerBulk GenerationWebhooksSDKs & ExamplesLimitsOn-Premise
Solutions
Logistics & ShippingE-CommerceERP & WMSManufacturingRetailHealthcare & LaboratoryAll solutions
Tools
ZPL Diagnostics HubZPL DebuggerSize & DPI AnalyzerDPI ConverterBarcode fit calculatorShipping Label AnalyzerFont InspectorOrientation DebuggerCalibration AssistantPrinter Compatibility CheckerBarcode Readability CheckerPrinter Language DetectorThermal Printer Test PackZPL ToolsEPL ToolsTSPL ToolsCPCL ToolsAll ToolsGuidesPricing
Language
EnglishTürkçeDeutsch
HomeGuidesZPL dots, millimetres and inches
Guides › ZPL dots, millimetres and inches

ZPL dots, millimetres and inches

Published:

ZPL has no unit. ^FO50,50 means fifty dots from the left and fifty from the top, and a dot is as big as the print head makes it. That single fact explains most "the label came out the wrong size" tickets, so here are the numbers, computed rather than copied.

Dots per millimetre and per inch

Printers are sold by dots per millimetre (dpmm) or dots per inch (dpi); the pairs below are the industry's nominal values. The heads are really 8, 12 and 24 dots per millimetre — 203.2, 304.8 and 609.6 dpi — and "203" and "300" are rounded names. The engine, the converter and these tables all work in dots per millimetre, exactly as the printer does.

Densitydpidots / mmdots / inch1 mm10 mm
6 dpmm152 dpi6152.4660
8 dpmm203 dpi8203.2880
12 dpmm300 dpi12304.812120
24 dpmm600 dpi24609.624240

Common label sizes in dots

Width × height, computed the way the engine sizes its canvas: inches × dpmm × 25.4, rounded down. Note that 4 inches on a "300 dpi" head is 1219 dots, not 1200 — the head is 12 dpmm, and 12 × 25.4 × 4 = 1219.2.

Label152 dpi203 dpi300 dpi600 dpi
4 × 6 in609 × 914812 × 12191219 × 18282438 × 3657
4 × 3 in609 × 457812 × 6091219 × 9142438 × 1828
2 × 1 in304 × 152406 × 203609 × 3041219 × 609
100 × 150 mm600 × 900800 × 12001200 × 18002400 × 3600
57 × 32 mm342 × 192456 × 255684 × 3841368 × 768

Migrating a file between densities

A file written for 203 dpi and sent to a 300 dpi head prints at 8/12 of its size — exactly two thirds — with a wide empty margin. The reverse overflows and clips. Nothing in the file is wrong; the dots simply mean a different physical distance. To move a design, every dot value scales by the ratio of the two densities in dots per millimetre — 1.5, not the 1.478 you get from dividing the rounded dpi names:

MigrationFactor4 in width in dots^BY2 becomes
203 → 300 dpi (8 → 12 dpmm)× 1.500812 → 12183
300 → 203 dpi (12 → 8 dpmm)× 0.6671219 → 8131
203 → 600 dpi (8 → 24 dpmm)× 3.000812 → 24366
300 → 600 dpi (12 → 24 dpmm)× 2.0001219 → 24384
152 → 203 dpi (6 → 8 dpmm)× 1.333609 → 8123

Three things do not scale cleanly, and this is where a mechanical find-and-replace fails:

The DPI converter applies the factor to every coordinate and flags the values it had to round; the size analyzer reads a file and reports which density makes its declared dimensions come out as a standard label.

Quick mental arithmetic

Frequently asked questions

How many dots is one millimetre in ZPL?

It depends on the printer: 8 dots at 203 dpi, 12 at 300 dpi and 24 at 600 dpi (6 at 152 dpi). ZPL itself carries no unit — a coordinate is a dot, and the print head decides how large a dot is.

Why does my 203 dpi label print small on a 300 dpi printer?

Because the file's dot values now mean shorter physical distances: 8/12 of the original, exactly two thirds, leaving a wide margin. Scale every coordinate by 1.5 (the dpmm ratio, not 300/203) or use the DPI converter, then re-check barcode module widths, which must stay integers.

Is 203 dpi exactly 8 dots per millimetre?

Nominally. 8 dots per millimetre is 203.2 dpi; printers and software round to 203. The difference is under a tenth of a percent — about half a dot over a full 4-inch width — and never the cause of a visibly wrong label.

Related guides

What is ZPL?

ZPL is the language Zebra thermal printers understand. How to read the commands, how a label is put together, and the most common mistakes.

Which barcode symbology should I use?

EAN-13, Code 128 or QR? Practical rules for picking a barcode based on your data, your space and the scanner that has to read it.

How to preview a ZPL file without a printer

A ZPL file is just text — the label only exists once something draws it. Three practical ways to see a ZPL label before it reaches the printer.

Try your own ZPL code →