Published:
The label comes out rotated 180 degrees — or one field lies sideways while the rest stand straight. ZPL has three separate switches that rotate things, they stack on top of each other, and the fix depends on which one is set. Guessing costs labels; reading the file does not.
^PO — the whole label. ^POI
(invert) prints the entire label rotated 180°. It is the usual culprit when
everything is upside down and the layout is otherwise perfect: someone set it
for a printer mounted with the tear bar on the other side, and the file then
travelled to a normally mounted printer.^FW — the default for all fields. It sets
the rotation every following field inherits unless it says otherwise. A
^FWR near the top of the file silently turns every field 90° —
the classic "all my text is sideways" case.^A — one field.
^A0N,40,40 is normal; R, I,
B rotate that single field 90/180/270°. One sideways field among
straight ones means one wrong letter, not a printer problem. An orientation
letter outside N/R/I/B is invalid — the field falls back to the default,
which is why a "harmless typo" changes the layout.Search the ZPL for ^PO, ^FW and the first
parameter of each ^A. Everything upside down →
^POI. Everything sideways → ^FW. One field off →
that field's ^A letter. The printer's own default orientation
(set from the front panel or a driver) matters only when the file says
nothing — an explicit command in the file always wins, which is also the
robust fix: state the orientation you want instead of inheriting whatever
the printer remembers.
Rotation and mirroring are different failures. A label that reads
back-to-front (mirror writing) is not a ZPL rotation — no combination of
^PO/^FW/^A mirrors text. That points
at a driver or export step, typically a "mirror image" option meant for
printing on transparent stock from the inside.
A browser preview applies ^FW and the per-field
^A orientations exactly as a printer would, and a structural
check flags an invalid orientation letter — the typo that silently changes a
field's direction. ^PO is different: the flip happens inside the
printer at print time, so a preview correctly shows the label upright — if
the file says ^POI, expect the physical output rotated 180°
relative to what you see.
Almost always ^POI in the file: it prints the whole label rotated 180 degrees. It was set for a printer mounted the other way and the file then travelled to a normally mounted one. Remove it or set ^PON explicitly.
A ^FW command near the top of the file sets the default rotation every following field inherits — ^FWR silently turns everything 90 degrees. One sideways field among straight ones is that field's own ^A orientation letter instead.
None. No combination of ^PO, ^FW and ^A mirrors text; ZPL rotates, it does not flip. Mirror writing points at a driver or export option, typically a mirror-image setting meant for printing on transparent stock from the inside.
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 printerA 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.