zpl.tools
Label geometry

^PO - Print Orientation

Rotates the whole label 180°.

^POI turns the finished label upside down — a 180° rotation of everything on it, for media loaded or applied the other way up. It is the only command that rotates the label rather than a field. ^FW and the o argument of ^A and the bar code commands rotate their contents in place, and leave the origin where it was. ^PO moves the origin as well, to the opposite corner, so a format written for ^PON does not stay put when ^POI arrives.

Syntax

^POa

Support

Supportedparsed: full · state: full · rendered: full

Every documented parameter renders the same output Labelary produces.

Labelary renders this command.

Parameters

aOrientationoptional · one of a set

Rotation of the finished label. Unlike ^FW this turns the label itself, so field coordinates start from the opposite corner.

Default
N
Invalid value
discarded, and the default applies. Anything other than I prints normally.
Test coverage
Values exercised: N, I. The invalid-value rule is pinned by 1 test.
N
Normal (default)
I
Invert the entire label 180°

Behavior

The renderer applies the rotation once, to the whole page, after everything else. Both axes invert: a point at x,y on a label w by h dots ends up at w − x, h − y. Content anchored near the top-left corner therefore comes out near the bottom-right, and a layout that was flush with one edge is flush with the opposite one. The guide's own remedy is an ^LH to bring the print back onto the label.

The renderer transforms the page rather than each field, so the last ^PO in a format governs the entire label. Several ^PO commands do not compose, and position in the format does not matter.

Labelary's own command reference describes ^PO as a mirror across a horizontal axis. Neither implementation does that. We measured this on 2026-07-29: both axes invert, which is a rotation, and text comes out upside down rather than reflected. ^PM is the command that mirrors.

^PO combines with the other whole-label commands in the order the renderer applies them. ^LH, ^LS and ^LT all move content in label coordinates first, and ^POI then turns the result over. A downward ^LT therefore moves the printed image towards the top of the finished page.

Tested behavior

Example

Both fields are placed near the top-left in label coordinates and come out near the bottom-right, upside down:

^XA
^POI
^FO50,50^A0N,40,40^FDUpside down^FS
^FO50,110^GB300,20,20^FS
^XZ

Open in viewer