MakeZPL

The labels

Select a block, copy it, then open the designer and choose File → Import ZPL. Every element lands on the canvas as something you can move and retype.

4 × 6 in shipping label

203 dpi · ^PW812 ^LL1218 · Code 128 + QR

The standard thermal shipping label: sender block, delivery address, order and carton numbers, a Code 128 tracking barcode and a QR code for the handheld.

^XA
^CI28
^PW812
^LL1218
^LH0,0

^FO30,30^GB752,150,3^FS
^FO52,58^A0N,40,40^FDACME DISTRIBUTION^FS
^FO52,104^A0N,26,26^FD1400 Industrial Way^FS
^FO52,138^A0N,26,26^FDColumbus OH 43228^FS

^FO30,210^A0N,24,24^FDSHIP TO^FS
^FO30,244^A0N,46,46^FDNORTHSIDE HARDWARE^FS
^FO30,300^A0N,34,34^FD82 Chestnut Street^FS
^FO30,342^A0N,34,34^FDCLEVELAND OH 44113^FS

^FO30,400^GB752,3,3^FS

^FO30,428^A0N,24,24^FDORDER^FS
^FO30,458^A0N,38,38^FDSO-104822^FS
^FO430,428^A0N,24,24^FDCARTON^FS
^FO430,458^A0N,38,38^FD3 OF 7^FS

^FO30,540^BY3,2,190
^BCN,190,Y,N,N
^FD00104822000037^FS

^FO30,820^A0N,26,26^FDWEIGHT 14.2 LB^FS
^FO30,858^A0N,26,26^FDSHIPPED 2026-09-01^FS

^FO520,800^BQN,2,7
^FDQA,SO-104822/3^FS

^FO30,1140^GB752,3,3^FS
^FO30,1160^A0N,22,22^FDPacked by station 4^FS
^XZ

Swap ^PW812 ^LL1218 for ^PW1200 ^LL1800 to move this label to a 300 dpi printer — and multiply every coordinate, font height and ^BY value by 1.5 at the same time.

2 × 1 in product label

203 dpi · ^PW406 ^LL203 · UPC-A

A small retail label: product name, size, price and a UPC-A barcode. At two inches wide there is room for about 24 characters of 26-dot text per line.

^XA
^CI28
^PW406
^LL203
^LH0,0

^FO14,12^A0N,30,30^FDGARDEN TWINE^FS
^FO14,44^A0N,22,22^FD100 m natural jute^FS

^FO300,12^A0N,34,34^FD$6.49^FS

^FO14,80^BY2,2,70
^BUN,70,Y,N,Y
^FD07253100640^FS
^XZ

^BY2 is the practical minimum at 203 dpi. If this label will be printed on a 300 dpi machine, raise it to 3 rather than leaving it — the bars would otherwise come out two thirds of the intended width.

4 × 2 in asset tag

300 dpi · ^PW1200 ^LL600 · QR + Data Matrix

An equipment tag at 300 dpi, with a boxed header, an asset number in large type, a QR code that opens the asset record and a Data Matrix duplicate for the fixed scanner.

^XA
^CI28
^PW1200
^LL600
^LH0,0

^FO30,24^GB1140,64,64^FS
^FO48,38^A0N,40,40^FR^FDPROPERTY OF ACME PLANT 2^FS

^FO30,120^A0N,30,30^FDASSET^FS
^FO30,158^A0N,76,76^FD41255-A^FS

^FO30,260^A0N,28,28^FDLathe, Colchester Student 1800^FS
^FO30,300^A0N,28,28^FDBay 4 - Machine shop^FS
^FO30,340^A0N,28,28^FDService due 2027-03-01^FS

^FO30,400^GB700,3,3^FS
^FO30,420^A0N,24,24^FDReport faults on ext. 2140^FS

^FO800,120^BQN,2,8
^FDQA,https://example.com/asset/41255^FS

^FO800,420^BXN,7,200
^FD41255-A^FS
^XZ

^FR before the header text prints it white out of the black box drawn by ^GB. The box has to come first — ZPL paints in the order it reads.

3 × 1 in shelf / bin label

203 dpi · ^PW609 ^LL203 · Code 39

A warehouse location label. Code 39 because a lot of installed bin scanners are still configured for it, and the location code is uppercase and digits only.

^XA
^CI28
^PW609
^LL203
^LH0,0

^FO16,10^A0N,56,56^FDC14-03^FS
^FO16,70^A0N,24,24^FDAisle C - Rack 14 - Level 3^FS

^FO16,104^BY2,2,64
^B3N,N,64,Y,N
^FDC1403^FS

^FO440,16^GB154,80,2^FS
^FO452,34^A0N,44,44^FDPICK^FS
^XZ

Code 39 only encodes uppercase letters, digits and a handful of symbols. A lowercase location code will not print — MakeZPL blocks the export and tells you which character is at fault.

2 × 1 in template with placeholders

203 dpi · ^PW406 ^LL203 · merge fields

The same label as a template. The {{…}} tokens are left in the ^FD data for a host system — RF-SMART, NetSuite, an ERP print service — to substitute at print time. MakeZPL recognises them on import and turns them back into bound fields.

^XA
^CI28
^PW406
^LL203
^LH0,0

^FO14,12
^A0N,28,28
^FB380,2,0,L,0
^FD{{item_description}}^FS

^FO14,78^A0N,22,22^FDITEM {{item_number}}^FS

^FO14,108^BY2,2,70
^BCN,70,Y,N,N
^FD{{barcode}}^FS
^XZ

Auto-fit font sizes cannot travel in a template — the printer has no way to shrink a value it has not seen yet. Either leave headroom, as the ^FB block here does, or import your data and export resolved ZPL instead.

4 × 6 in carton label with wrapped text

203 dpi · ^PW812 ^LL1218 · ^FB + Interleaved 2 of 5

A carton label whose description is too long for one line. ^FB wraps it inside a fixed width over at most three lines, and an ITF-14 code identifies the carton.

^XA
^CI28
^PW812
^LL1218
^LH0,0

^FO30,40^A0N,30,30^FDCARTON CONTENTS^FS
^FO30,80^GB752,3,3^FS

^FO30,110
^A0N,42,42
^FB752,3,6,L,0
^FDStainless steel hex bolt, M12 x 60 mm, grade 8.8, zinc plated, DIN 931 partially threaded^FS

^FO30,290^A0N,30,30^FDPART^FS
^FO30,328^A0N,52,52^FD41255-A^FS
^FO430,290^A0N,30,30^FDQUANTITY^FS
^FO430,328^A0N,52,52^FD250 EA^FS

^FO30,430^GB752,3,3^FS

^FO30,470^BY3,2,220
^B2N,220,Y,N,N
^FD00104822000037^FS

^FO30,760^A0N,28,28^FDLot 2026-0841^FS
^FO30,800^A0N,28,28^FDPacked 2026-09-01^FS
^XZ

Interleaved 2 of 5 needs an even number of digits. Fourteen here is fine; thirteen would silently shift every pair on a printer that pads it, which is why MakeZPL refuses to export one.

Adapting an example to your printer

Three things need checking before any of these goes into production.

  1. Match the resolution

    These labels are written for the dpi in their heading. Moving from 203 to 300 dpi means multiplying every coordinate, every font height and every ^BY by 1.5; 203 to 600 means tripling them. The conversion table has the arithmetic done for the common sizes.

  2. Match the media

    ^PW and ^LL must match the stock in the printer. A label longer than the media is cut off; one shorter leaves the rest blank and can throw the gap sensor out of step.

  3. Replace the data, then re-validate

    Real values are longer than sample values. Import your records, step through them in preview, and use Test all records to catch the one description that overflows on customer 4,812.

Every example on this page is extracted from this very page by our test suite and run through the MakeZPL importer and validator on each build. If one of them ever stopped parsing, the build would fail before it reached you.