zpl.tools
Print control

^PR - Print Rate

Sets how fast the media moves while printing, slewing and backfeeding.

^PR sets three motor speeds: the media speed during a print, during a slew past a blank stretch, and during a backfeed. It is a printer setting, not a property of the label. The guide notes that the printer keeps the speeds until another ^PR arrives or the power goes off. A ^PR in one format stays in force for the next.

Syntax

^PRp,s,b

Support

Recognised, deliberately skippedparsed: full · 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.

The parser reads this command and the renderer ignores it, as Labelary does. Speed is a motor setting that cannot change the image. — not pinned by a test

Labelary renders this command.

Parameters

pPrint speedoptional · integernot honoured by zpl.tools

Media speed during print, in inches per second.

Default
2
Accepted range
1 to 14 ips
Invalid value
discarded, and the default applies. The parser reads the slot as a speed designator: one of the letters A to E, or an integer from 1 to 14. Anything else is reported as Value '<value>' is not a valid print speed; used 'A' instead and the slot takes the default A, which is what live Labelary answers (swept 2026-08-19).
Test coverage
No test at the minimum, maximum or one step outside the range. The invalid-value rule is pinned by 1 test.
sSlew speedoptional · integernot honoured by zpl.tools

Media speed during a feed to the next label.

Default
6
Accepted range
1 to 14 ips
Invalid value
discarded, and the default applies. The parser reads the slot as a speed designator: one of the letters A to E, or an integer from 1 to 14. Anything else is reported as Value '<value>' is not a valid slew speed; used 'D' instead and the slot takes the default D, which is what live Labelary answers (swept 2026-08-19).
Test coverage
No test at the minimum, maximum or one step outside the range. The invalid-value rule is not pinned by a test.
bBackfeed speedoptional · integernot honoured by zpl.tools

Media speed during a backward feed.

Default
2
Accepted range
1 to 14 ips
Invalid value
discarded, and the default applies. The parser reads the slot as a speed designator: one of the letters A to E, or an integer from 1 to 14. Anything else is reported as Value '<value>' is not a valid backfeed speed; used 'A' instead and the slot takes the default A, which is what live Labelary answers (swept 2026-08-19).
Test coverage
No test at the minimum, maximum or one step outside the range. The invalid-value rule is not pinned by a test.

Behavior

The guide also accepts letters for the five commonest speeds, and older formats tend to use them. A is 2 ips, B is 3, C is 4, D is 6 and E is 8. The letters are aliases, not a separate scale, so ^PRD and ^PR6 ask for the same speed.

A speed the printer cannot reach is not an error. The guide accepts the value, and the printer runs at its own maximum, so ^PR12 on a 6 ips machine prints at 6. The right speed depends on the media and the ribbon rather than on ZPL. The guide advises a test rather than a number out of documentation.

The parser reads the command and discards the three values. Speed is a motor setting and cannot change which dots are black, so the image is the same at any rate. The numeric reader does not recognize the letter forms, and discards them with everything else.

Tested behavior

Differences from the specification

Labelary against the ZPL II guide

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

  • Labelary documents all three speeds as any integer from 1 to 14. The guide documents a closed set instead: A to E and 2, 3, 4, 5, 6, 8, 9, 10, 11 and 12. That set leaves 1, 7, 13 and 14 out. The defaults agree: the guide's A, D, A are Labelary's 2, 6, 2 inches per second. — not pinned by a test

Example

Four inches per second while printing, six while slewing, two while backfeeding:

^XA
^PR4,6,2
^FO50,50^A0N,40,40^FDFour inches per second^FS
^XZ

Open in viewer

  • ^PQ Print QuantityPrints the label more than once, the one command here that changes how many pages come back.
  • ^MD Media DarknessAdjusts print darkness up or down from the level `~SD` set.