zpl.tools
Print control

^PH / ~PH - Slew to Home Position

Feeds one blank label.

^PH feeds one blank label through the printer, which leaves a separator between print runs or parks the media at the next label. It takes no arguments. The blank label is a label. The renderer returns it as a page of its own, so a format with ^PH returns one page more than the same format without it.

Syntax

^PH

Also accepted with the other prefix: ~PH.

Support

Supportedparsed: full · state: full · rendered: full

Every documented parameter renders the same output Labelary produces.

The renderer feeds the slewed blank label as an output page ahead of the format that carries the command, wherever inside the format the command sits, and counts that page in X-Total-Count. A second ^PH in one format feeds no second page. A ^PQ in the same format replicates the label alone, so ^PH with ^PQ3 gives four pages. A format that draws nothing still feeds the page its ^PH asked for, and ~PH sent with no format at all feeds one page on its own (all measured 2026-08-15). — not pinned by a test

Labelary renders this command.

Parameters

^PH / ~PH takes no arguments.

Behavior

The two prefixes differ only in timing on hardware. In the guide, ^PH feeds its blank label after the current format prints, and ~PH after the format in progress finishes. A render has no media, so both give the same page.

The order is surprising. ^XA^PH^FO50,50^A0N,40,40^FDhi^FS^XZ returns X-Total-Count: 2 with the blank page first. A ^PH after the field does not change that order. Page index 0 is the blank page; the label is at index 1.

One ^PH feeds one page. A second ^PH in the same format feeds nothing more. Each later format with its own ^PH feeds a page of its own. ^PQ replicates the label alone, so ^XA^PH^PQ3…^XZ returns four pages: the blank one, then three copies.

A format that draws nothing still feeds the page its ^PH asked for. ~PH with no format is one blank page on its own. Labelary agrees on every count here (measured 2026-08-15).

Known issues

Differences from the specification

Labelary against the ZPL II guide

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

  • Labelary returns the slewed label as a page of its own, ahead of the format: ^XA^PH^FO50,50^A0N,40,40^FDhi^FS^XZ gives X-Total-Count: 2, page 0 blank and page 1 carrying the text (measured 2026-08-15). A ^PH after the field does not change that order. The guide describes the command as a media feed and gives no page count, so the leading page is Labelary's reading. The renderer follows it. — not pinned by a test

Example

One label preceded by a slew:

^XA
^PH
^FO50,50^A0N,40,40^FDLabel^FS
^XZ

Open in viewer

  • ^PQ Print QuantityPrints the label more than once, the one command here that changes how many pages come back.
  • ^PF Slew Dot RowsFeeds the media a number of dot rows and leaves them blank.
  • ^PN Present NowEjects a section of the current label so the operator can take it.