Stripy Horse
Stripy Horse

ZPL config builder

Your label ZPL is right; the printer settings are not. Paste or upload the ZPL, pick how many copies, the darkness, the print speed, the tear-off position and the rest, and get the stream back with the right commands merged in. A ^PQ that is already there is rewritten in place, duplicates are dropped, and nothing gets appended twice. Job settings stay inside ^XA…^XZ; printer settings (~SD, ~TA) go in only when you ask.

or
This job (inside the label format)
Media (inside the label format)
Printer settings (stay until changed)
The commands, one line each
^PQq,p,rPrint quantity. Copies of the label, pause after every p, r replicates of each serial number. Format-level: put it inside ^XA…^XZ.
^PRp,s,bPrint rate in inches per second: print, slew (feed between labels) and backfeed. Slower prints darker and sharper barcodes; 4 in/s is the usual sweet spot, and anything above 6 needs a printer rated for it.
~SDxxSet darkness, 0 to 30, absolute. A printer setting: it stays until changed. Too high and bars bleed together; too low and thin bars fade.
^MDxMedia darkness, -30 to 30, relative to the printer's ~SD. Lives in the format, so one job can print darker without touching the printer's baseline.
~TAxxxTear-off adjust, -120 to 120 dots. Moves where the label rests after printing so the perforation lines up with the tear bar. Printer setting.
^MMaPrint mode: T tear-off, P peel-off, C cutter, D delayed cut, R rewind, A applicator.
^MTaMedia type: T thermal transfer (uses a ribbon), D direct thermal.
^MNaMedia tracking: Y gap/web, M black mark, N continuous, V continuous with variable length, A auto-detect at power-up.
^POaPrint orientation: N normal, I inverted (the whole label rotated 180°, handy when the roll feeds the other way).
^PWx / ^LLxPrint width and label length in dots. At 8 dpmm a 4x6" label is 812 x 1218; at 12 dpmm it is 1218 x 1827. The printer feeds what ^LL says; a renderer has to be told the label size, which is what the preview control above does.
^LTx / ^LSx / ^LHx,yLabel top, label shift and label home: nudge the whole image vertically, horizontally, or move its origin.
^JUSSave configuration to flash so the current settings survive a power cycle. ^JUF restores factory defaults, ^JUR the last saved set.

About the Config builder

Print settings live inside ZPL: ^PQ for copies, ^PR for print speed, ~SD for darkness, ~TA for the tear-off position, ^MM for print mode, ^MN for media tracking, ^PW and ^LL for the label size, ^LH for the home position and a dozen more. Getting them right by hand means remembering which command goes where, which are per job and which stick in the printer, and what happens when the label already contains one.

The config builder is a form for those settings. It parses your ZPL, replaces any setting it already contains, inserts the missing ones where the printer expects them, and hands the result back. Job-scoped settings go inside the label; the persistent ones are only emitted when you ask for them, so a one-off test never changes the printer's stored configuration.

An optional render shows the label under the new settings (mirroring, inversion, rotation and the declared size all take effect), and the lint points out settings that contradict the label, such as an ^LL shorter than the content.

Your data: Your ZPL is processed in memory and discarded when the response is sent; nothing is stored, logged or read by a person. There is no watermark on the ZPL you get back. Details in the privacy policy.

Questions

What is the ZPL command for darkness?

~SD sets darkness from 0 to 30 (^MD adjusts it relative to the printer's setting). The builder emits ~SD for an absolute value so the label prints the same on every printer.

How do I set the number of copies in ZPL?

^PQ, inside the label before ^XZ. ^PQ5 prints five copies of that label; the builder also exposes the pause and replicate options that ^PQ carries.

What is the difference between job settings and printer settings?

^PQ, ^PR, ^MD and the like apply to the label they are in. ^JUS saves the current settings to the printer's memory so they survive a power cycle. The builder keeps ^JUS off unless you switch it on, so testing does not reconfigure a shared printer.

Will it duplicate commands my ZPL already has?

No. Existing ^PQ, ^PR, ~SD, ~TA and the rest are replaced in place; the builder never appends a second copy, which is what breaks labels when settings are bolted on by string concatenation.

The same engine is behind the API and the guides; every tool here is also an API call.