[WinPrnDev] Re: [Windows] [modification] [thirdparty] Can I manipulate print job stream data in-between userspace, spooler and printer?

  • From: Clinton Bessesen <clinton@xxxxxxxxxxxxxx>
  • To: winprndev@xxxxxxxxxxxxx
  • Date: Fri, 01 Mar 2013 00:26:33 +0000

Hi Igor,
An interesting challenge and not one that I myself have tackled completely yet,
But I might be able to help with the fundamentals.
If your users are to print via a Windows interface ( i.e. not from a backend *nix or other system that produces the print ready file - these would use the RAW processor ), then you need to be looking at the print processor. All jobs from the Windows desktop to the Print Server can do this using NT EMF ( however there are options with the latest OS's to spool locally first ). Your print processor would then need to playback to the printer driver of choice ( designated printer queue ). EMF is easily manipulated so you can perform watermarks using DRAW commands.

Hope it puts you on the right track.

On 01/03/2013 00:11, IH wrote:

I am looking for a way to modify printed data on Windows - right before it comes out of the printer. The solution should work for most of PostScript/PCL printers - thus be generic enough (e.g. no dll replacements).

What was tried so far:

- port monitor. It seems to be completely useless for my needs due to the need of complete printer driver underneath (e.g. 1 model == 1 driver build, or 1 lousy hack to do it with original driver which may or may not employ its ports too). - render plugin (DDK's print\oemdll). There's a large bold warning in WDK8 (only I may have missed it..) - these drivers are meant to be installed as a printer and not for existing printer, is that so?

What is still expected to be tested:

- print processors
- replacing pscript5.dll to custom proxy dll completely, (McAfee does that in its DLP
- ?

Which possible solution is the best and more recommended for in-stream modifications?

I want to be able to receive the whole datastream at any available printer (as the user sends data to it), watermark it and then send to paper. All of that without the exact printer models models hardcoded in .inf/drivers.


Questions? First check the UndocPrint pages at 

To unsubscribe, visit the List Server page at 

Other related posts: