zpl.tools
Print control

^PN - Present Now

Ejects a section of the current label so the operator can take it.

^PN triggers a present cycle. The printer pushes a stated length of the current label out of the mechanism, and an operator tears it off or takes it. It draws nothing. The ZPL II guide does not document it at all, so Labelary's reference is the only account of its single argument.

Syntax

^PNl

Support

Recognised, deliberately skippedparsed: none · state: none · rendered: none

Accepted and skipped, because it configures the printer rather than the label. It cannot change the rendered output, and Labelary skips it too.

This command drives the media out of the printer, and a render has none. Labelary is also unaffected: ^PN100 changes neither the image nor the page count (measured 2026-07-30). The renderer does not parse this command. It reports IGNORED_COMMAND at info severity, which does not reach X-Warnings. Labelary is also silent, so the rendered label is identical in both engines. — not pinned by a test

Labelary renders this command.

Parameters

lSection lengthrequired · integer

How much of the label to eject, in millimeters.

Accepted range
0 to 255 mm
Invalid value
not documented, and we have not measured it. The renderer does not parse or measure this command.
Test coverage
No test at the minimum, maximum or one step outside the range.

Behavior

The length is a physical distance in millimeters, not a count on the label's dot grid. It does not scale with the print resolution, and does not interact with ^LL or ^PW. ~PL adds to what ^PN ejects.

Labelary changes nothing for it either: ^PN100 left both the rendered label and the page count untouched (measured 2026-07-30). The renderer does not parse this command. It reports IGNORED_COMMAND at info severity, which does not reach X-Warnings. Labelary is also silent, so the rendered label is identical in both engines.

Differences from the specification

Labelary against the ZPL II guide

Where Labelary — our compatibility target — behaves differently from the printed specification.

  • ^PN is absent from the 2006 edition of the guide. The guide gives ^PN no page and no format line. Labelary's reference is the only source for its single argument. The range and the units are Labelary's account and not Zebra's. — not pinned by a test

Example

A label that would eject 100 mm on a printer:

^XA
^FO50,50^A0N,40,40^FDTake me^FS
^PN100
^XZ

Open in viewer