Printer Requirements
Direct print is built to support all Windows printers. However, there are some limitations when printing in a service context.
No User Interface
Some printers have a printer driver that shows a dialog when printing. The Microsoft Print to PDF printer is an example of such a printer. It stops printing and asks the user to input a file name for the PDF file. All printing is paused until the user enters the file name.
When printing from a service, no user is around to input the file name or answer any other dialog that may pop up. Therefore, you cannot use this group of printers with service-print.
Client-print does not have a problem with printing dialogs. Since everything is handled in the logged-in user's context, the dialog can be shown to the user.
Note
Your printer may show some users a dialog, not others. Therefore, you should log in as the service user when you make a test print to a printer.
Choose the right driver
Picking the wrong printer drivers can cause a lot of headaches. Some versions of a driver can have errors fixed in other versions. Other drivers only understand input in a specific format. For label printers, it is common to have different drivers depending on which type of input you plan to send to them.
Install the latest driver
You should update your printer drivers to the latest version supported by the operating system. That said, we have seen new versions of drivers that do not work, while older versions do.
Manufacturer or Microsoft driver
In most cases, the printer driver is supplied by the printer manufacturer. However, Microsoft also makes drivers, and they may also have a driver for your printer. If the other driver does not work properly, you can try the Microsoft one.
Crashing drivers
Drivers are written in C++, for better and for worse. Bad code can easily crash the printing process, so if your printing service halts or crashes, the drivers are the culprits.