Using the .NET class PrintDocument for printing to a Zebra printer

Article ID: 28196082



Topic or Information

This information is relavent to developers that want to develop an application in a .NET environment or programmatically print to Zebra printers

Applies To

.NET Environments Excludes ZQ110, EM220, EM220II


The .NET environment provides the PrintDocument class under the System.Drawing.Printing namespace.  This class is designed to communicate with the printer driver to send a print job.  While using PrintDocument is inefficient compared to other methods, it is very attractive in its universal implementation.  PrintDocument's only real requirement is the installation of a driver that points to the appropriate printer.  This being the case, PrintDocument is compatible with all of Zebra's printers, given that a properly configured driver is installed.  You can find an article on how to use PrintDocument at Microsoft: Read More>>.

One should consider using other means outside of PrintDocument when designing a print workflow.  Some of the disadvantages of using PrintDocument include:

  • Greatly reduced efficiency: PrintDocument relies on a .NET graphics object in which all of the design takes place.  Text fields, barcodes, and images can be placed in the graphics object, and will print accordingly.  However, instead of utilizing the printer's native printer language (such as ZPL, EPL, CPCL, or EPCL), which can represent objects such as barcodes and text with light-weight ASCII characters, PrintDocument composes a large graphics object and sends it directly to the printer to be printed.  In environments necessitating a speedy printout, PrintDocument may hurt performance.
  • Inability to control printer's status-checking and other functionality: As PrintDocument is merely sending a graphic down to the printer driver to be printed, it has no other inherent way to control the printer.  The printer languages and SDKs, on the other hand, provide immense capability to query the printer for information as well as instruct it to perform activities such as resets, blank label feeds, printing configuration labels, among other things.
  • PrintDocument requires a driver: PrintDocument can only print to printers via their driver. 

Alternatives to PrintDocument include using established Zebra software, utilizing Zebra's many and versatile Software Development Kits, and using the printer's native printer language.