The Short Answer

Use ZPL if your printer supports it (most Zebra, Rollo, and SATO printers do). ZPL commands are interpreted natively by the printer's firmware, producing barcodes at the printer's full resolution with no scaling artifacts.

Use PDF if you need a universal solution that works on any printer — including standard laser or inkjet printers on label sheets — or if you're sharing label files with someone who doesn't have ZPL knowledge.

Feature ZPL PDF
Works on thermal printers ✓ Native ✓ Via print driver
Works on laser/inkjet ✗ No ✓ Yes
Barcode sharpness ✓ Printer-native DPI ⚠ Depends on DPI & scaling
Risk of label drift/misalignment ✗ None ⚠ Print dialog can rescale
File size per label ~100–200 bytes ~50–200 KB
Requires driver ✗ No ✓ Usually yes
Can be sent via USB copy / LPR ✓ Yes ✗ Not directly
Easy to preview before printing ✗ Harder ✓ Yes (any PDF viewer)

Why ZPL Produces Better Barcodes

When you print a PDF, the printer's driver converts the PDF image into a bitmap and sends pixel data to the print head. This conversion introduces rounding — bar widths are approximated to whole pixels. At low DPI (203 dpi), a bar that should be 1.5 pixels wide gets rounded to 1 or 2, and at small label sizes this error compounds across dozens of bars.

ZPL works differently. Instead of sending pixel data, ZPL sends instructions: "draw a Code 128 barcode encoding this value, at this position, with this module width." The printer's firmware renders the barcode directly at its native resolution — no conversion, no rounding, no driver in the middle. The result is a geometrically exact barcode every time.

The PDF Scaling Trap

The biggest practical problem with PDF label printing isn't sharpness — it's scaling. When you open a PDF in Adobe Acrobat or a browser's PDF viewer, the default print setting is often "Fit to page" or "Shrink oversized pages." These settings silently scale your labels to ~97% of their intended size.

97% sounds harmless, but on a sheet of 30 Avery labels, a 3% scale error means labels starting on row one align correctly, but by row four they're drifting, and by row eight they're half-on, half-off. You've just wasted a label sheet — or worse, printed hundreds of slightly-off-center labels before noticing.

The fix: always set your PDF print scale to 100% (Actual size) and uncheck any "Fit" or "Shrink" options. Bulk Barcode Generator also embeds a PrintScaling: None preference in its PDFs, which tells compliant PDF viewers to disable auto-scaling by default.

When to Use PDF for Thermal Printing

PDF is still the right choice in several scenarios:

How to Send ZPL to a Zebra Printer

Sending a ZPL file doesn't require special software — you copy it directly to the printer port:

  1. Connect your Zebra printer via USB, Ethernet, or WiFi
  2. Windows: Open Command Prompt and run: copy /b labels.zpl \\YourPrinterName — or use the printer's IP: copy /b labels.zpl \\192.168.1.100
  3. Mac / Linux: Use LPR: lpr -P ZebraPrinterName labels.zpl
  4. Zebra web interface: Some Zebra models (ZD420 and newer) have a built-in web server at their IP address. Navigate to it in a browser and use the ZPL test tool to paste or upload the file.
  5. The printer receives the commands and immediately starts printing — no driver dialog, no scale setting to worry about.

Which Thermal Printers Support ZPL?

ZPL II is the native language of all modern Zebra printers — ZD, ZT, GX, LP, and GK series all support it. Many non-Zebra thermal printers also offer ZPL emulation mode:

Check your printer's manual or spec sheet for "ZPL II emulation" or "ZPL compatible" language.

Generate ZPL or PDF barcode labels — free

Bulk Barcode Generator exports native ZPL II for all six barcode formats, plus print-ready PDFs with automatic scaling protection. No signup, no row limit.

Generate Labels Free