Capturing Print Output

Saturday Oct 06, 2012


I'm often asked to debug a print problem. One of my key problem solving tools is the print file itself. Asking clients for a copy of the output is often difficult, most due to their uncertainty on how to go about this. The easiest way is to ask them to "print to file". This is fine when the app is Word or some other desktop application where there is a print to file option or the printer driver port can be set to File.

printToFilePort.jpg

But let’s say that the print is a server application launched by a service account, some ERP application where the ability to output to file is not available, a program where cannot make changes to the print flow or just some non-Windows style application.

One option in these cases is to put the printer into Hex Mode (that's what Lexmark calls it). Some printers allow for this, it's a mode where the printer will produce the Hex or ASCII in the datastream instead of the formatted output. This option might work in a pinch when you just want to see the header PJL or some command near the top of the output file; however, in most cases the sure size of the print file will equate to hundreds of pages of output. Add to that the fact that not all manufactures have this feature.

A long time ago we constructed a very simple capture application. It simply captures any data coming into the host PC and writes it to file. From here you can open it in your favourite editor (notepad++) and view. If it's Postscript output you can run it through Adobe Postscript Distiller or Ghostscript to convert to PDF, or just use GSview to view onscreen. For PCL I typically use PCLWorks to view.

You can download vclpdcap here: vclpdcap.zip

Run it via the command line using vclpdcap /h for usage info. The quickest way to run is to simply type vclpdcap followed by RAW or LPR. RAW monitors port 9100 and writes any data received to file. LPR uses the LPR/LPD protocol over port 515 and does the same.

vclpdcap.png

Viewing these files is helpful, but the real reason for capturing the output is to review some of the details in the file. Reviewing page selection details in the file and other page/document properties can quickly help us determine if the output problem is printer related or an issue in the datastream.