Direct ZPL printing
Normal printing hands your label to the operating system, which re-rasterizes it through a driver. Direct printing skips all of that: BarcodeStack builds the label in the printer’s own language — ZPL — and sends it straight to the printer. One click, no print dialog, and every barcode module lands exactly on a printhead dot.
Two ways to print directly
Section titled “Two ways to print directly”| Path | Install needed | Works with |
|---|---|---|
| USB (WebUSB) | Nothing | USB-connected printers, Chrome/Edge only |
| Browser Print agent | One-time free agent from Zebra | USB and network printers, Chrome/Edge/Firefox |
Zero-install: print over USB
Section titled “Zero-install: print over USB”If the printer is plugged in over USB and you’re in Chrome or Edge, open Export → Direct print and click Print over USB — the browser shows its own device picker, you select the printer once, and the ZPL goes straight down the cable. Nothing to install.
Caveats: Safari and Firefox don’t support WebUSB, network printers can’t be reached this way (browsers can’t open raw network connections), and on Windows the built-in USB print driver sometimes claims the port — the agent covers all of those cases.
The agent (USB + network)
Section titled “The agent (USB + network)”One-time setup
Section titled “One-time setup”- Install the agent. Download Zebra Browser Print for macOS or Windows from zebra.com/browserprint and install it.
- Launch it. A small icon appears in your menu bar (Mac) or system tray (Windows). It finds connected Zebra printers automatically — including USB printers that browsers can’t otherwise reach.
- Allow BarcodeStack. The first time you use direct printing, the agent
asks whether
barcodestack.commay talk to your printers. Click Accept — the choice is remembered.
Printing
Section titled “Printing”- Open your design in the editor.
- Export → Direct print — Zebra agent.
- Pick your printer from the list (remembered for next time) and hit Print. The label prints immediately at exact dot dimensions.
Troubleshooting
Section titled “Troubleshooting”“The agent isn’t running.” Launch Browser Print (check the menu bar/tray). If it’s running, you’re probably in Safari — switch to Chrome, Edge, or Firefox, or use the ZPL file export instead.
The agent runs but lists no printers. Check the printer is powered on and connected. USB printers need Zebra’s driver installed once so the agent can see them; network printers must be on the same network.
The label prints the wrong size. Match the label preset to the loaded stock, and the DPI to the printhead: most Zebras are 203 DPI (8 dots/mm). Hold the FEED button to print the printer’s configuration label — the resolution line tells you for sure. A true 200 DPI head should use a 200 DPI custom size.
No agent, still want raw ZPL? Export the .zpl file and send it
manually:
# macOS / Linux via CUPS — the -o raw flag is essentiallp -d YOUR_QUEUE -o raw barcodestack-label.zpl
# or over the network, bypassing CUPS entirelync PRINTER_IP 9100 < barcodestack-label.zplOn Windows, drag the file into Zebra Setup Utilities → Direct Communication.
Why direct beats the print dialog
Section titled “Why direct beats the print dialog”ZPL maps 1:1 to printhead dots. BarcodeStack renders your label at the printer’s exact dot grid with every barcode at whole-dot module widths, so raw ZPL output cannot be resampled, scaled, or blurred by anything on the way. The PDF path is also dot-exact in BarcodeStack, but the OS driver still re-rasterizes it — at 100% scale that’s fine; at any other setting it isn’t. Direct printing removes the possibility entirely.