^PQ
Print QuantityPreview: not drawnHow many copies of this label the printer produces, and whether it pauses or cuts between them.
Syntax
^PQq,p,r,o,eParameters
| Parameter | Description and accepted values | If omitted |
|---|---|---|
| q | Total number of labels to print for this format.1 to 99999999 — total labels to print | 1 |
| p | Print and then pause after this many labels. 0 never pauses.0 to 99999999 — labels between pauses | 0 |
| r | How many copies of each serial number to print before it increments.0 to 99999999 — replicates of each serial number | 0 |
| o | Pauses and cuts after each group rather than only at the end.Y or N — pause and cut after each group | N |
| e | Overrides the pause count so the run continues without stopping.Y or N — override the pause count | N |
How it works
^PQ sets the run length for the format it appears in. Without it the printer produces exactly one label, which is why a format that looks right but only ever prints once is usually missing this command rather than broken.
The pause and replicate parameters are for serialised runs. `p` makes the printer stop every so many labels — for an operator to move a stack — and `r` prints several copies of each serial number before ^SN advances it, which is how you get three identical tags per item off one increment.
Position matters less than people expect: ^PQ can appear anywhere between ^XA and ^XZ, and it applies to the whole format. What does matter is that it is not sticky — the next format starts at one copy again unless it carries its own ^PQ.
Example
^XA
^FO50,50^A0N,40^FDPacking slip^FS
^PQ4,0,0,N
^XZRendering…
How the preview on this site handles it
Not drawn, and there is nothing to draw: ^PQ says how many times to print the label, and a preview prints none. The page you see is one copy. The rest of the format previews normally, and the linter reports ^PQ as "valid ZPL this preview does not act on" rather than as an error.
Common mistakes
- Expecting one label and getting a stack. A ^PQ left in a template from a test run is the classic way to empty a roll.
- Putting the count in the wrong parameter. `^PQ1,4` is one label with a pause setting, not four labels.
- Assuming it carries to the next format. Each ^XA…^XZ needs its own ^PQ.