How would I create my own XP printer driver which will do the following:
- print to file (probably XPS
format) - put this file into a password
protected ZIP file - email the zip file to a configured
email address
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
What you need is not a printer driver. One named it Print Monitor. It is a DLL, which will be loaded in Spooler.exe process. The DLL gives Spooler at the initialisation phase a logical names of ports like LPT1:, FILE:, SPSPort: etc. The optput prepared with a printer driver must be send in any way to a destination device. This work does print monitors like “Standard TCP/IP Port” or “Local Port”.
To write printer monitor you need download and install Windows Driver Kit (WDK or some time ago DDK see http://www.microsoft.com/whdc/devtools/WDK/default.mspx). More information about writing printer monitor see http://msdn.microsoft.com/en-us/library/ff563806(v=VS.85).aspx. Print Monitor is a DLL with some exported function (see http://msdn.microsoft.com/en-us/library/ff549405(v=VS.85).aspx). I recomment you to start with modifying of Local Monitor example LocalMon which full source sode you find after installing of WDK (see http://msdn.microsoft.com/en-us/library/ff556478(v=VS.85).aspx).
The most practical problem with writing of printer monitor is requirement of writing a real multithreaded DLL. You must be very carefull, understand and use
EnterCriticalSectionin all you functions. For debugging of printer monitor you should connect Visual Studio Debugger to the process Spooler. The rest is the same as writing of a standard windows Win32/Win64 DLL running.UPDATED: One more small remark. If you don’t want that the printer driver do anything with the data sent to the printer you can use generic printer driver. You will find it under “Generic” manufacture, printer with the name “Generic / Text Only”. Examine some driver settings which you has (like CR LF settings)