Virtual Printer
Virtual Printer works like a MS Windows® printer driver without wasting paper. You'll get your printout as a collection of Enhanced Metafiles (EMF) that you can view, store, modify, and print with other applications. If you don't trust your application's preview function or if you want to have a test printout without producing piles of scribbling-paper, if you want to have a 'digital printout' this is the program you need. Get an idea of your output by using Virtual Printer and EMF-Viewer (example). There are printer drivers for several Windows versions. The package includes:
- printer driver (for Windows 95, NT, 2000, XP; 98 should work, ME untested)
- print processor (Windows NT, 2000, XP)
- EMF-Viewer (all Windows versions)
- copy utility called by the driver / print processor (all Windows versions)
- detailed (well,...) instructions
These programs are free and provided "as is". Please note that we can't take any responsibility for any problems that might encounter when using Virtual Printer. However, we don't think that you are running into serious problems; if it doesn't work just uninstall / delete the files. Please read instructions carefully.
VPrinter is "From-Dusk-Till-Dawn" software, that means, developed in Mabuse's spare time. Since VPrinter is rather old software (its 1st version has been developed eight years ago) and Doc Mabuse's master coder switched to other places of delightment, the development of Virtual Printer is discontinued. This is a free tool, do whatever you want to do with it. There's a lot of stuff you can read at these links:
- SysInternals: Now the "new Sysinternals TechCenter":-/ Russinovich / Cogswell are still the best! Many must-have tools.
- Device Driver Development for Microsoft® Windows®: Many links to interesting sites
- A chat between Microsofties about printer driver development (MSDN)
- Printing - Architecture and Driver Support (MSDN)
VPrinter downloads
- Windows 9x downloads: sources / installer / copier / EMF viewer
- Windows NT downloads: printer sources / print processor sources / installer / copier / EMF viewer
- Windows 2000 / XP downloads: sources / installer
Virtual Printer FAQ
How does VPrinter work?
With Windows 95, it's the driver itself that produces the emf output page per page. With Windows NT (and above), the printer system works completely different. The printer driver model VPrinter uses (called: minidriver) is just a description of the printer's capabilities. The dirty work is done by the print processor (vprproc.dll) that produces a spool file and that calls a VPrinter companion tool (copier.exe). The spool file is produced because you told VPrinter to do so (in the printer's property page). Copier copies (sic!) that spool file to an output directory and extracts the emf output to make it readable for other applications. After that, all temporary files are being deleted. In former VPrinter versions there was a nasty dialog box popping up during printing - this has been abolished in newer versions.
Which printer port needs to be associated with the Virtual Printer Driver?
Just define a local port. To do so, open the printer's properties window and click at "ports" or "printer ports". Click on "Add port" (or "Add"). Then a printer port definition dialog should appear. Click at "local port" and hit "New Port" (not "New Monitor"). Now enter a name, "dumb" for example. Click "Ok", then "Close". The name you typed in should appear now in the printer port dialog box. Make sure it is checked; this port will be your Virtual Printer's printer port.
VPrinter prompts a dialog which contains the following information for Dumb Driver: "Dateien wurden erstellt."
(Windows 95 and NT version only.) "Dateien wurden erstellt." is something that has obviously been forgotten to be translated into English. It means "Files have been created." If you are printing with Virtual Printer this notice pops up (ok, sometimes it keeps in the background) and tells "Dateien wurden erstellt." Just click "OK". This is the time copier.exe renames the enhanced metafiles to *.emf files and writes them into your \temp directory (or whatever directory is associated to your %TEMP% system variable. I admit, this procedure isn't solved very nice.
I have installed the print processor vprproc.dll before installing the Virtual Printer Driver. What do I need to do now?
Nothing. The print processor doesn't need any customization.
What output format do I have to select in the print processor's settings?
Choose an EMF format (doesn't matter what type of EMF). "Raw" or "Text" output won't work.
Where I can find the .emf output files? Does the driver give me a prompt dialog box to fill a file name of that file?
The *.emf files are in your %TEMP% directory (usually c:\temp; VPrinter 2K+2: the directory you told instproc.exe to use for output.). When you start emf viewer it jumps to that directory and you may browse through all subdirectories. Subdirectories' names are timestamps, so you know when your print job has been made. example.emf shows you a sample "printout" done with MS Outlook.
There's an issue when I use VPrinter 2K+2 with Windows XP!
Yes, there are several bugs. Most of them are caused by errors in the EMF chunk recognition when examining the spool file. Until this is fixed, you have to live with it.
How can I change VPrinter's resolution?
Just load the .gdp file into the Minidriver Development Tool and modify its resources. There's no need to "program" a minidriver (except when you're using 16-Bit versions of Windows).
Would you develop a printer / monitor / installer for money?
No. :-)