^PQ sets the print quantity for a label format — how many copies to print. It replaces the need to send the same ^XA...^XZ block multiple times from the host application.
The first parameter (q) is the total number of labels. The second parameter (p) controls how many labels to print before pausing (useful for peel-off modes where the operator removes labels one at a time). Setting p to 0 disables inter-label pausing.
The third parameter (r) sets the replicates per serial number for serialized formats (used with ^SN, ^SF, and variable fields). If you're not using serialization, leave it at 0.
The fourth parameter (o) controls whether to override the pause-and-cut setting: Y forces a cut after the last label regardless of printer mode, N respects the current mode.
^PQ must appear inside the ^XA...^XZ block, typically just before ^XZ. Placing it outside the format block may cause it to be ignored.
Syntax
^PQq[,p,r,o]
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| q | integer | 1 | Total number of labels to print. |
| p | integer | 0 | Pause/cut after every nth label. 0 = no inter-label pause. |
| r | integer | 0 | Number of replicates per serial number increment (for serialized jobs). |
| o | Y | N | N | Override pause-and-cut: Y = always cut at end of job, N = use current mode. |
Examples
Print 10 copies
Try in Viewer^XA ^FO50,50^A0N,36,36^FDProduct Label^FS ^FO50,100^BY2,3,80^BCN,80,Y,N,N^FDPROD-00123^FS ^PQ10,0,1,Y ^XZ
Print 5 labels, pause after each one (peel mode)
Try in Viewer^XA ^FO50,50^A0N,36,36^FDPeel One at a Time^FS ^PQ5,1,1,N ^XZ
Common Mistakes
- !Placing ^PQ outside the ^XA...^XZ block — many printers silently ignore it.
- !Setting q to 0 expecting it to print indefinitely — 0 is invalid; use a large number or the printer's host-controlled mode instead.
- !Confusing the p (pause interval) parameter with q (total quantity) — p is per-pause count, not the total.