I'm trying to find out if this is possible, and if so how to do it. From a machine running XP or Vista, as I understand it, when you send something to print, Windows/the print drivers render the file into a format the printer can read and understand (a spool file?). This file is sent to the printer then the local copy is deleted. I believe this file is held briefly in the "C:\WINDOWS\system32\spool\PRINTERS" folder, which is effectively the shared print queue folder. for all printers on that machine.
My question is whether you can capture this 'raw' spooler data (I've managed to copy and paste to capture the files that appear in the spool folder, but you have to be fast!), and crucially, once you've captured it, can you then somehow send it to print again?
I have a feeling this is more complicated than I think. Presumably there are different formats of spooler data etc.? Is there a utility that can do the printing/viewing of captured files?
How to capture a Windows Spool File?
If the application does not support "Print to file", the following method (for a Windows server) can be used:
- Manually power down the printer or pause the queue so printing will stay held in the queue.
- Print a document that demonstrates the problem (normally using a workstation).
- On the server, navigate to C:\Windows\System32\Spool\PRINTERS\ folder.
- Take a copy of the SPL and SHD files who's creation date matches the time of the print.
- Copy and Rename the files to a descriptive name like "testprint-3pages-2color-1bw.spl".
- Zip the files and email both files to firstname.lastname@example.org for analysis.
In troubleshooting problems, it is sometimes necessary to capture the data (spool file) being sent to the printer. Below are instructions for two different methods for capturing a spool file on a Windows computer.
The first step is to make sure that output is spooled to the printer, rather than printing directly.
- Go to Devices and Printers, right click on the printer queue, and select "Printer Properties",
- Make sure that the setting "Spool print documents so program finishes printing faster" radio button is selected,
Next, we pause printing to the queue so we can capture the file:
Next, open the spool directory ( C:\Windows\System32\spool\PRINTERS\ ) to watch for the spool file after it enters the queue,
Print your document through the print queue,
Look for files with an extension of *.spl in the directory:
Email the spool file to others,
Spool File Relevant Tools:
PCL Converter: Convert PCL files to PDF, PS, EPS, TIFF, JPG, PNG, BMP, etc. formats,
Postscript to PDF Converter Command Line and SDK,
Postscript to Image Converter Command Line and SDK,
Postscript to Text Converter Command Line and SDK,
Spool File Page Counter SDK,
Intercepting data sent to a Windows printer
How to intercept and capture a print job and convert it to PDF & Plain Text & Image files and then print?
Can I forward and redirect print jobs from one printer to another in windows?