Skip to content

Direct ZPL printing

ZPL is a command language interpreted by compatible printers. BarcodeStack can export ZPL or send a reviewed job through a supported direct-print connection. Check your exact model and firmware: a thermal printer or a matching label size does not, by itself, establish ZPL support.

Direct printing can avoid a PDF print dialog, but the result still depends on resolution, printer settings, stock and conversion behavior. A successful connection or send response does not establish that a correct label printed.

Setting up a Mac? Follow Print labels from a Mac to a Zebra for the download, installation, printer selection and first-label walkthrough.

Path Requirements to check
USB (WebUSB) A browser that supports WebUSB, a supported USB device and an available USB interface. Driver ownership and platform support can prevent access.
Zebra Browser Print The manufacturer’s installed local software, a supported browser/platform, a compatible configured printer, and permission for this site to use that connection.
Manual ZPL export A printing utility or managed print system configured for the specific authorized printer and ZPL output.

For Browser Print, obtain the current installer and supported-platform details from Zebra Browser Print Support. Follow the manufacturer’s setup instructions. Grant site-to-printer access only when you intend to use that printer; review the origin and destination before accepting a permission prompt.

For a supported WebUSB connection, open Export → Direct print — Zebra agent and use Print over USB. Select the intended printer in the browser’s device picker. A previously remembered device is still a destination you need to check for each job.

Download .zpl and Export → ZPL — Zebra / thermal raw save a file; they do not send it to the printer. Use the direct-print dialog’s Print button with a configured Zebra Browser Print connection, or a supported printing utility for an exported file.

  1. Open the design in the editor. Confirm the actual label size and printer resolution; a saved legacy size may need deliberate replacement with current stock.
  2. Check the preview and every conversion warning. Inspect text, barcode values, quiet zones, images, backgrounds and sheet placement as applicable.
  3. Select the exact printer and confirm the physical quantity, including row ranges and copies. Print one test label before committing a batch.
  4. Start the approved job and verify the paper output. A network timeout or application failure can occur after a printer receives data. Check the queue/device before approving a reprint; do not retry blindly.

The site’s operating agent does not receive printing permission merely by being allowed to maintain the website. An automated print integration needs a separately configured destination and explicit job authorization.

  • Text uses printer fonts for native ZPL text. Letter shapes, line breaks and character support can differ from the browser canvas.
  • Some elements become graphics. Unsupported native elements can use raster fallback; review any warnings about omission, resolution or size.
  • Saved QR codes use exact-dot graphics. Their pixels match the browser, use the largest whole-dot modules that fit with the white border, and remain centered inside the saved object’s width and height.
  • Native barcode sizes use whole dots. Fitting a value into a box can change its width. PDF417 and firmware-specific behavior need particular attention.
  • The label background is omitted from ZPL. This includes its color and background image. Review the output; color artwork does not become a color print on a monochrome device.
  • Invalid values or unsupported elements may not produce the requested output. Do not treat a warning-bearing export as a validated label. Inspect row-specific issues and the completed result before applying labels.

The editor’s ZPL export and direct-print dialog display conversion warnings. Exported comments can also describe conversion behavior; they are not a substitute for checking the rendered label and actual printer output.

This illustrative one-label ZPL file uses a sample internal identifier. It is not postage, a retailer-assigned identifier or a production label. Replace sample content and confirm the printer, stock and quantity before sending any file.

^XA
^CI28
^PW812
^LL1218
^LH0,0
^FO40,40^A0N,30,30^FDSAMPLE - REVIEW BEFORE USE^FS
^FO40,110^BY2,3,80^BCN,80,Y,N,N^FDSAMPLE-SKU^FS
^XZ

These dimensions correspond to the application’s 4 × 6-inch, 203-DPI coordinate grid. They do not certify your printer or stock.

No device appears: confirm the printer is powered on and supported by the chosen connection. Check the manufacturer’s driver and connection instructions; do not grant broader device permissions as a generic fix.

Output has the wrong size or position: check the actual printhead resolution, loaded stock, driver/media settings and any printer offsets. Use the model’s documented calibration procedure; button sequences differ between devices.

Some elements look different or are missing: read conversion warnings and compare fonts, values, graphic fallback and background behavior. Correct the design and print another explicitly approved test.

Sending failed or timed out: treat delivery as uncertain until the printer/queue is checked. Do not automatically repeat a physical job.

Using the API: save only a successful response of the expected content type, inspect it and obtain job approval before passing it to a printer. Never pipe an unchecked HTTP response directly into a print command.