Category Archives: manufacturing

Zebra ZD411 PDF Direct and CUPS/lpr Setup on Linux

PDF Direct

There is a lot of marketing about PDF Direct, but more difficult to find How to Guides or specifics, especially if you want to print a label from a Linux distribution. This post tries to bring the information together.

We purchased a ZD411T Thermal Transfer printer for demonstration purposes and decided PDF Direct might be a good choice as it would allow for labels to be stored for record as well as be printed.

In 2023 the ZD411T came with LinkOS 6.3 so the PDF Direct feature was already available, and no firmware update was required.

If you have a printer with a touch display, you can set up PDF Direct using its menu. If not you need to send the ZPL command to the printer.

At location 10:50 in the video below (of a Zebra webinar) it discusses how to do it from a developer Toolbox, but if you don’t have that installed you can also do it from the Zebra Setup Utilities application on a Windows PC .


The following are resources from Zebra to set this “alternate application” apl setting to “pdf” for PDF Direct.

Once moving to PDF Direct, your printer will only handle PDF Direct, so don’t chop and change. That question was raised in this video above at the end.

The video also mentions the PDF file being sent should be the same dimensions as the label.

After we enabled PDF Direct, from Windows, at first printing did not work at all, even after confirming the setup was sent and rebooting the printer. A reboot of the PC was required for it to print the PDF from Adobe Reader, via Ctrl-P.

Disable Boot Label Scroll

By default it seems the printer is setup to do some auto calibration or similar on power up and it will print out additional blank labels on each boot. This can be adjusted in the printer settings. We found the following settings to work if you want to avoid scrolling out blank labels.

  • Media Type: Non Continuous / Web sensing
  • Media Handling: Tear Off
  • Media Feed Option: No feed (avoids label feed due to calibration at power on)
  • Back Feed: Before Printing

CUPS (Linux or Mac)

There is mention that you can print using CUPS in Linux and Mac, but Zebra’s documentation shy’s away from directly saying they support it for Linux. So, we recommend you set your printer up first with a Windows PC and its tools, and once you have proven it move to Linux/Mac.

We were able to add the ZD411 as a ZPL printer to a Ubuntu 20.04 distribution, using these instructions,


which basically involves walking through adding a printer via the CUPS web interface at localhost:631. The printer did not work before having done this.

We setup the print settings on Windows previously, so we left the printer settings to “Printer default” in most settings.

Attempting to print a PDF via the Ubuntu default Document Viewer resulted in an empty label being scrolled out and the print head did not make any noise, so no attempt was made to print.

However sending the PDF file directly to the printer using the lpr command printed the label. The following are the commands to list the printers (to get the printer name) and then send the file (of the same dimensions as the label) directly to the printer to print the label.

lpstat -p -d
lpr -P Zebra_Technologies_ZTC_ZD411-203dpi_ZPL  2022-123456_label.pdf

Hope that will save you some setup time if you choose to go Zebra on Linux.