How-to guide
How to print barcode labels on a Zebra printer from Shopify
Zebra printers speak two languages — ZPL and plain PDF. For Shopify product labels, the PDF route wins: set the page size to the label size, calibrate the media, print at 100%. Step by step.
By Bastien HugonFounder & Engineer8 min readPublished July 9, 2026
TL;DR
To print Shopify barcode labels on a Zebra: load the roll, run a media calibration (feed button, or the driver's Calibrate action), then print a PDF whose page size equals the label size — 2\u2033 \u00d7 1\u2033 being the retail workhorse — at 100% scale through the standard Windows/macOS driver. You do not need to write ZPL: the driver rasterizes PDFs perfectly for product labels.
Zebra is the industrial answer to label printing: where a Dymo lives on a desk, a Zebra lives on a shelf-edge in a warehouse and prints all day. The entry desktop models (ZD220, ZD230, the older GK420d generation) are common in Shopify stockrooms because they cost a few hundred dollars, take 4\u2033-wide rolls of every shape, and — like all direct thermal printers — never need ink.
ZPL or PDF? Choose the boring one
Every Zebra speaks ZPL (Zebra Programming Language) — a text protocol where a label is code: `^XA ^FO50,50 ^BC ... ^XZ`. Warehouse systems print thousands of shipping labels a minute this way. For product labels from Shopify you do not want it: ZPL means templates, coordinates in dots, and a debugging loop every time a title is longer than expected. The PDF route uses the same driver logic as any office printer: a document whose pages are exactly label-sized, printed at 100%. Modern Zebra drivers (and network-capable models with Link-OS) rasterize PDFs cleanly at 203 or 300 dpi — more than enough for a Code 128 that scans.
| Route | Good for | Avoid when |
|---|---|---|
| PDF via driver (this guide) | Product labels from Shopify apps; anything a human lays out | Thousands of labels/minute pipelines |
| ZPL templates | High-volume shipping labels from a WMS | You would be hand-coding coordinates for product data |
Common Zebra label sizes for products
| Size | Typical use | Notes |
|---|---|---|
| 2\u2033 \u00d7 1\u2033 (50.8 \u00d7 25.4 mm) | The retail default: barcode + title + price | Fits a full-height Code 128 with quiet zones |
| 2.25\u2033 \u00d7 1.25\u2033 (57.2 \u00d7 31.8 mm) | Roomier product label | Same layout, more air — easier scanning |
| 1.5\u2033 \u00d7 1\u2033 (38.1 \u00d7 25.4 mm) | Small products, shelf edges | Keep the barcode ≥ 1\u2033 wide — shrink text, not bars |
| 4\u2033 \u00d7 6\u2033 (101.6 \u00d7 152.4 mm) | Shipping labels | Not a product label — different workflow entirely |
Step by step: Shopify to printed roll
- 01
Load the roll and close the head
Labels feed face-up under the guides on desktop models. Adjust the guides until they touch the roll edges without pinching — side play is the #1 cause of horizontal drift.
- 02
Calibrate the media
The printer must learn where one label ends and the next begins. On most desktop Zebras: hold the feed button until it flashes twice, release, and let it feed a few labels. In the driver, this is Printer Preferences → Tools → Calibrate. Do this on every new roll type.
- 03
Set the driver page size to the label size
In the Zebra driver preferences, create a custom stock: width 2.00\u2033, height 1.00\u2033 (or your size). This is the printer-side half of the one-label-one-page rule.
- 04
Generate a PDF with pages the exact label size
The document-side half: each page must be exactly 2\u2033 \u00d7 1\u2033. In [Solvi Barcode Labels](/apps/barcode-labels), pick the Zebra 2\u2033 \u00d7 1\u2033 preset, set quantities per variant, and the PDF comes out one label per page at true size.
- 05
Print at 100% — never 'fit'
In the print dialog: Actual size / Scale 100%, and the custom Zebra stock as the paper. 'Fit to page' on a label-sized page distorts bar widths and kills scannability.
- 06
Verify one label before the batch
Print one. Check the die-cut alignment, then scan it — with the Shopify POS camera scanner if that is your register. If it scans at the desk it will scan at the till.
Troubleshooting
- Prints skip labels or land mid-label → the printer has not learned the gap: recalibrate the media (feed-button dance or driver Calibrate). Happens on every roll-type change.
- Faint print → direct thermal density too low: raise Darkness in the driver by 2-3 points. Too high and bars bleed together — the six-fix guide covers the sweet spot.
- Blank labels → thermal-transfer printer without a ribbon, or direct-thermal stock loaded upside down (the coating is on one side only — scratch test: a fingernail dragged fast leaves a dark mark on the printable side).
- Everything shifted right/left → media guides too loose, or the driver stock width does not match the physical label width.
Doing this with Solvi Barcode Labels
Solvi Barcode Labels ships true-size Zebra presets (2\u2033 \u00d7 1\u2033 and friends) alongside Dymo, Avery and Brother. Pick the preset, set quantities — they start at zero, so a restock run only prints what you touched — and download a PDF whose every page is exactly your label. The preview is that PDF, so what you approve is what the Zebra prints. Codes are unique Code 128 values checked against your whole catalog and saved back to your variants.
Frequently asked questions
Do I need to know ZPL to print Shopify labels on a Zebra?
No. ZPL is for high-volume programmatic pipelines. For product labels, the standard driver prints correctly-sized PDFs perfectly — which is what label apps generate. If a tutorial has you pasting ^XA commands to label a jewelry tray, you are on the wrong tutorial.
Which Zebra model should a small Shopify store buy?
The desktop direct-thermal line is the sane default: ZD220d (budget), ZD230d, or a used GK420d — all take 4\u2033 rolls, cost a few hundred dollars, and need no ink. Go thermal-transfer ('t' models, ribbon required) only if labels must survive years of sunlight or abrasion.
Why does my Zebra print one label then feed two blank ones?
Either the media is uncalibrated (the printer does not know the label length — recalibrate) or the PDF page size is larger than the label, so the printer feeds until it covers the oversized page. Both fixes are in the steps above.
Are Zebra and Dymo labels interchangeable?
Physically no — different core sizes and widths. Workflow-wise the rule is identical for both: one label = one PDF page at exact size, printed at 100%. The [Dymo guide](/guides/print-barcode-labels-dymo-printer) is this guide with different part numbers.
Related guides
How-to
How to print barcode labels on a Dymo printer from Shopify
Rolls are not sheets: set the PDF page size to the label size, print at 100%, and use die-cut media — barcode printing on a Dymo LabelWriter, step by step.
8 min read
Troubleshooting
Barcode labels won't scan: 6 fixes
Dead barcodes are a physical problem: work through size, quiet zone, contrast, print scaling, density and truncation — in the order most likely to fix yours.
7 min read
How-to
How to print Avery 5160 barcode labels from Shopify
The exact Avery 5160 geometry — 2.625″ × 1″ labels, 30 per sheet — plus the step-by-step workflow and print settings that keep all thirty barcodes aligned.
8 min read
How-to
How to generate unique barcode numbers for your products
When an internal Code 128 code is enough, when you need GS1-registered UPC or EAN numbers, and how to keep every barcode in your catalog unique.
8 min read
Do this in minutes with Solvi Barcode Labels
Print barcode labels right the first time: unique codes, true-size sheets, ready in minutes.