.NET

No matter how skilled or tech savvy a corporate user is, there are times when a problem or challenge stops them in their tracks, and when you are working against a deadline, there is nothing more frustrating than this kind of delay. This article outlines one such issue related to printing multiple copies of a PDF file through a Web Service.Using Acrobat Reader: Version 6 of Adobe Reader supported command line printing, but that support was removed in later versions. It can still launch the application using System.Diagnostics.Process class and supplying the “PrintTo” verb, but there is an issue with the 32-bit and 64-bit version and there may be a few conflicts on different machines and operating systems (Win 7, Win 8, Win XP / 32-bit, 64-bit). It would seem that the Acrobat Reader fails because of several related issues.

###

First, Adobe Reader will not close after the file has been printed and there is no easy way to determine when the application has finished printing. You can wait for a few minutes or wait until the application is idle and then kill it. If you attempt to print multiple copies on a Windows 8 machine or Windows 7 machine, the print job may finish and the printer will display no further copies, even though all copies have not finished printing. That is because Adobe Reader is not yet closed when you are trying to print more copies. In this case, Adobe Reader does not seem to be threaded properly. When using two or more threads, files sent to Adobe Reader at the same time are sometimes ignored, and when you use multiple threads to print PDFs quickly it may skip a few files in a queue and not print properly. There seemed to be a lot of memory overhead when launching Adobe Reader and you cannot control the increase of memory size.

Using GhostScript: This method solves the problems with Adobe Reader, but introduces new ones. GhostScript has a command line interface (gswin32c.exe) which will print a file and then exit. There is no problem using several threads and memory usage seemed to be acceptable. The problem with using GhostScript is related to processing time and the size of the spooling file sent to the printer. In some cases, there are significant file size differences between GhostScript and Adobe Reader. It usually takes 40 minutes to print a 40 page PDF which creates a real problem because GhostScript is trying to convert the PDF files and push them to the printer which takes more time and uses more memory. So, although this process works, it may not be acceptable if you need to print more PDFs at the same time

Using Foxit Reader: Try test printing with Foxit Reader (freely available at www.foxitsoftware.com). This is the same as Acrobat Reader and is free to use. It has a command line interface for printing, uses less memory than the previous alternatives and is multi-threaded. It also allows the user to assign the printer name and print labels without setting up the printer as a default printer. It prints PDFs on Network Printers, uses less memory and prints documents quickly.

The moral of this story is that an enterprise user may be so fixated on the standard solution that they do not consider other available options to resolve the problem. Keep in mind that many enterprise users will have to involve the IT staff in this type of research and implementation, since many companies do not allow employees to download software from internet sites or to load new software on their computers without permission. Still, it is worth the effort to look for and use shortcut tools, plug-ins and utilities that will make you more productive and simplify your life and your job!