Rescale a ZPL label for a Zebra printer of another resolution. A label written for a 300 dpi printer prints half again too big on a 203 dpi one; paste it here, pick your printer's density, and download ZPL that prints at the size it was designed. Only the dot values change, so the rest of your label stays exactly as written.
Want to see the label first? Open it in the ZPL viewer, which detects 300 and 600 dpi layouts too. Converting to another printer language instead? Try the label converter.
Your ZPL
ZPL for 300 dpi
Runs in your browser. Shipping addresses and order numbers in the label stay on your computer.
Your commands, fonts and field data come back untouched. Only numbers that count printer dots are rewritten.
Embedded logos and graphics are resized with the label, and anything that can't scale exactly is listed.
How to change a ZPL label's dpi
1
Paste the ZPL, or open the .zpl or .prn file. The density it was laid out for is detected from its width; change Label is laid out for if you know better.
2
Set Your printer to the density of the printer you're sending it to. The rewritten ZPL appears beside yours, with a note for anything that couldn't scale exactly.
3
Download or copy the new ZPL and print it the way you already do, or use Preview to render it first.
Answers about rescaling ZPL labels between 203, 300 and 600 dpi printers.
Why does my ZPL label print too big, or too small?
ZPL places everything in printer dots, and a dot is a different size on each printer: 203 dpi heads have 8 dots per millimeter, 300 dpi heads have 12 and 600 dpi heads have 24. A label laid out for a 300 dpi printer therefore prints about 1.5 times larger on a 203 dpi printer, with its right and bottom edges cut off, and a 203 dpi label prints about a third smaller on a 300 dpi printer. Rescaling the ZPL to your printer's density fixes both.
What does the converter change in my ZPL?
Only numbers measured in dots: field positions (^FO, ^FT, ^LH), label width and length (^PW, ^LL), font heights and widths (^A, ^CF), text block widths (^FB, ^TB), lines and boxes (^GB, ^GC, ^GD, ^GE), barcode bar widths and heights (^BY and each barcode's height), 2D code sizes (^BQ, ^BX, ^B0, ^B7), and images (^GF, ~DG, ~DY), which are resized. Field data, comments, print settings and every command it doesn't know are copied through character for character.
Is my label uploaded anywhere?
No. The rewrite runs in your browser, and the download is built there too. The only time the label leaves your computer is if you choose Preview, which opens the new label in the LabelZoom ZPL viewer to render it.
Will the barcodes still scan?
Barcodes defined in ZPL are redrawn by the printer, so they scan as before, but their bars must be a whole number of dots. Where the exact size falls between two, the converter rounds down, so a barcode can come out slightly smaller but never grows into the field next to it. Barcodes that are part of an image, such as a shipping label sent as one graphic, are resized pixel by pixel and should be test-scanned. The page lists every place rounding applied.
How do I find out what dpi my label was made for?
Look at the label's width. A 4-inch label is about 812 dots wide at 203 dpi, 1200 at 300 dpi and 2400 at 600 dpi, so a ^PW1200, or fields placed past x=900, mean a 300 dpi layout. The converter reads this for you and fills in Label is laid out for. Your printer's density is on its configuration printout or in its model name, such as ZD421 203dpi.
Why not just add ^MU to the label?
^MUd,203,300 asks the printer to convert a 203 dpi layout itself, but firmware that supports it doesn't convert everything: Data Matrix module size and PDF417 row height keep their dot values, and older printers ignore the command. Rewriting the numbers works on every printer. Labels that already use ^MU for inches or millimeters are refused, because their numbers aren't dots.
What about labels that use ^FN templates or stored formats?
Formats saved with ^DF are rescaled like any other label, because their positions and sizes are in the same file. Images or formats already stored on the printer and only recalled by name (^XG, ^IM, ^XF) aren't in the file, so they keep the size they were stored at; the page names any it finds.