Why Does List & Label Need a Printer Driver?

Note: From List & Label in Version 27 there is the possibility to use List & Label without a printer driver.

It may happen that the first time you use List & Label in your own application, a message is displayed that no printer driver is available or no printer is defined/installed. Or the error code NO_PRINTER (-11) is displayed in the log output of Debwin:

-11 (No printer is installed in the system or the specified printer does not exist. Please install a printer (driver).)

Both symptoms indicate that List & Label cannot use a printer driver. But why does List & Label need a printer driver at all? And you often ask yourself why a printer driver is needed if you only want to edit the layout in the Designer or just export a PDF.

The reason for this is that List & Label works exclusively with the Windows GDI (Graphics Device Interface) in order to, with the help of a so-called device context based on paper formats (here printer (driver)), execute drawing functions for geometric objects such as circles, lines, etc., use of color palettes and output of graphics (mostly bitmap) and much more.

Therefore List & Label does not only need a printer driver for editing a layout, but also for all export formats and therefore cannot be used without access to a printer (driver). However, it does not matter whether the printer is physically installed or not. It is sufficient if the driver is installed on the system and can be used by the Windows user - e.g. by sufficient access authorization or a valid network share. Also the Microsoft XPS Document Writer (from .NET Framework 3.5 automatically installed on all systems) is suitable.

However, a special feature must be taken into account with regard to server applications, services or web applications:
At least one printer driver must be installed on the server on which the List & Label functions are executed for the print/export to be successful. However, it is important that the List & Label process is often running in a different user context, and may not have access to the printer driver installed in the system.

For a .NET Web application, for example, this is the context of the IIS (Internet Information Services). There the ApplicationPool used must be configured in such a way that there is access to the installed printer driver. Newer IIS versions use the Identity ‘ApplicationPoolIdentity’ as default. This is a so-called virtual account that may not have access to system resources such as the printer driver. If no printer can be enabled for the ApplicationPool account, the set identity must be reconfigured for the ApplicationPool used - e.g. in ‘NetworkService’ or a normal user account.