Zebra and other ZPL printers

Print to Zebra label printers by IP through the bridge, and send ZPL from your own app.

Zebra printers, and other printers that speak ZPL, take their commands as raw bytes on port 9100. The print bridge sends them exactly as they are. No driver is needed.

You need Home or Business for the bridge, and Business to send ZPL from your own app.

Set it up

  1. Connect the printer to your network and give it a fixed IP address in your router. See how to fix an IP address.
  2. On Admin → Printers & stock, press Add a printer, choose Label printer — rolls, and pick its model: Zebra ZD421, ZD411 or ZD621 (choose the 203 or 300 dpi version on your printer's label), or Zebra GK420d. For anything else, choose Other ZPL printer under My model isn't listed, with the dpi from its spec sheet. The dpi matters: the same label at the wrong dpi comes out the wrong size.
  3. Choose On my network and type its address. Leave Port empty for 9100, or type the port your printer uses.
  4. On What's in it?, tick the labels you use, such as 4 x 6in shipping, and choose the one in it now, so labels come out the right size.
  5. Name it and press Save & send a test page. For a ZPL printer, Laberty sends a small test label written in ZPL.

What a ZPL printer can print

  • Everything Laberty makes. Address labels, food labels, notes and appointment cards are PDFs; the bridge draws each one at the printer's dpi and sends it as a ZPL graphic. The bridge needs to be up to date for this. If a job fails with "rebuild the bridge", rebuild it from the latest agent folder.
  • Text labels from your app: label: { "lines": [...] } on a ZPL printer is written as native ZPL, sized to the loaded stock. It is sharper than a drawn graphic.
  • The ZPL test label from Printers & stock.
  • Your own ZPL, sent from your app through the API with kind: "zpl":
curl -X POST https://laberty.app/api/print \
  -H "Authorization: Bearer $LABERTY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "printerId": 3, "kind": "zpl", "text": "^XA^FO20,20^A0N,30,30^FDORDER 1042^FS^XZ" }'
  • Other raw bytes, with kind: "raw", for printers that take another language (such as TSPL) over the same port.

What it can't print

Receipts. A receipt job sent to a ZPL printer is refused with 422 wrong_kind, and the response lists what the printer accepts: zpl, pdf and raw. See Error codes.

The PDF-to-ZPL path is new. If a label comes out cropped or the wrong size, check the printer's dpi setting and In it now first, then contact support.

If nothing prints

The job or log saysWhat to do
has no IP address setAdd the address on Printers & stock
did not respond (timed out)The printer is off, or the address is wrong
refused the connectionThe address is right but nothing listens on that port. Use 9100, or the port in your printer's manual
is not reachable from this machineThe bridge is on a different network from the printer

More in Nothing printed.

Still stuck?

Contact support and tell us what you tried. We reply by email, usually within 1–2 business days.