views:

45

answers:

2

I have been looking into the possibility of creating a soft copy(image/EMF file) of everything printed from Windows - for archival purposes. Does anyone know if it is possible to create a hooking DLL that can grab the printed data in such a general way?

A: 

A low tech way of solving it might be to install pdf printer driver as the default printer and remove all others and set it up to automatically write all the files to certain directory on the network and then write a tiny app on another computer to monitor that folder for changes and if any new pdfs appear just print them out to a real printer.

Edit: Otherwise there's apparently something called the Print Monitor API. Here's an article that describes using that from VC++ 6 and seems to be pretty much what you want (assuming it's still supported by the OS you use).

ho1
It would be too destructive to the enterprise environment. What I am essentially looking for is a DLL that I would write that would hook into the print chain somewhere(Print Monitor/Spooler/GDI) and get a hold of everything printed without affecting the print job itself, sort of like a printer job listener for Windows.
@user357320: See my edited answer, might be just the thing you're looking for.
ho1
Thanks, I will.
A: 

Having looked at this problem in more detail the best solution seems to handle it through Spooler notifications in the Win32.