Alphatronics, Inc.Try Virtual Port Monitor
Virtual Port Monitor Questions & Answers
 What is the purpose of Virtual Port Monitor?
It produces raw printer output so that developers and end users can operate on the single feature most programs have; the ability to print. By capturing the printer output, several possibilities exist:
  • Database applications.
  • Automatic imposition for printing plates.
  • Print previewing.
  • Printer control and management.
  • Delivery to a service bureau or quick printer.
  • Data logging.
  • Printer driver testing.
  • Email automation.
  • Forwarding to a distilling or ripping application.
  • Document management and archival.
And more...
 I ran the installer. Now what?
Open your Printers folder and select a printer. Select menu Printer | Properties.Go to the Details (Win9x) or Ports(WinNT/XP/200X/Vista) tab and click add port. Select Other, then select Alphatronics Virtual Port and click OK. A dialog is displayed allowing you to enter the port name. Enter a port name such as DISK:. Select the folder you would like the resulting printer output files saved. Additionally, you may select a post-print application. The application you select will be executed after the file has been completely written, appending the output filename to the command line, which causes most applications to perform the "open" function on the file. This feature allows program authors to create applications that operate on printer files. Click OK in the dialog, then OK in the Printer Properties. Now when you print to that printer, files will go to disk, being named automatically.
Are there any features missing in the unregistered version?
No. The only difference is the registration reminder after each print.
 If I purchase a registration number, does the registration reminder screen go away?
Yes. Just run the installer and enter your registration code when prompted.
 I tried to import the printer output into a word processor and got garbage. Am I doing something wrong?
Most printer output is understood by printers only. The exception to this rule is if the printer driver is designed to produce image data or text. Standard Windows drivers do not produce image data, but the "Generic/Text Only" driver will produce text. Also, graphic design programs allow placement of EPS files. This requires a Postscript printer driver with the Postscript Output Format set to Encapsulated Postscript (EPS). This format does not produce a preview of the file and may not work as expected.
My software is "hard wired" to print to LPT1. Can I capture printer output from LPT1..LPT3?
Yes, but if the physical port actually exists, the Windows port monitor gets control of it before Virtual Port Monitor can. For Windows 9x, begin by disabling the printer port in BIOS setup. Boot into Windows, and delete LPT1: from the device manager. Select a printer, get the properties for it, and create a Virtual Port called LPT1:. On Windows NT, you only need to delete the port from the list of available ports, then add the Virtual Port. For Windows 2000, you need to delete the port you want to capture from the list of ports Windows supports by using the registry editor. The location of the key is HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Ports. Each port is is a REG_SZ value with no data assigned. The same rules apply if the port actually exists in the machine where it needs to be removed from the device manager and BIOS. After removing the port from the registry, you will need to restart the spooler service or the computer. Windows 2000 and up still calls it a "Local Port" because it starts with "LPT".
I added a Virtual Port called LPT1..LPT3, but it's not working in DOS mode.
The Windows print spooler will not support Virtual Ports that are not attached to a printer. Attach it to an existing printer in the printers folder, or install a printer and attach it to a Virtual Port. There are also some DOS programs that will never work properly with newer versions of Windows because they attempt to operate directly on the hardware, which is not allowed.
In addition, newer versions of Windows do not initialize printers and their associated port monitors until their first use, presumably in order to save resources. Virtual Port Monitor installs its DOS devices during initialization, so in order for a DOS program to use a Virtual Port, either a file needs to pass through the spooler, or the list of ports needs to be enumerated, forcing the spooler to load the port monitor to obtain the list of ports. Available in the download section of our website is a utility called AVPMonDD.exe, which can be placed into the startup folder to initialize the spooler.
Does Virtual Port Monitor alter the data emitted by the driver?
No. The resulting file is a binary copy of all data sent from the driver. Some drivers change their output based on data collected from the printer (i.e.: choose not to download fonts installed in the printer). Since a Virtual Port is not bi-directional, this query cannot be performed, so there may be a difference in the data output from the driver because of this.
Does Virtual Port Monitor run as a service?
Virtual Port Monitor is installed as an extension to the Print Spooler service. A service is installed to run post-print applications.
My Print Spooler keeps crashing. They recommended removing all third party port monitors?
To troubleshoot a spooler problem you can use Virtual Port Setup (AVPSetup.exe) to de-activate Virtual Port Monitor for troubleshooting purposes. Once the problem is isolated, you can re-activate Virtual Port Monitor using the same utility. There are no known problems with Virtual Port Monitor crashing the Spooler Service.
If I install Virtual Port Monitor on a central server and share printers using Virtual Ports, do I have to purchase more licenses?
No. The software is installed on one computer. If you need to install the software on more than one computer, then more licenses would be required. Our Site license allows you to install Virtual Port Monitor on every computer at a single location.
If I install Virtual Port Monitor on a cluster of servers do I have to purchase more licenses?
Yes. The software is installed on more that one computer.
 Can Virtual Port Monitor receive jobs from the internet?
Windows NT/200X Server has an LPD service (TCP/IP Printing or Print services for Unix) in which jobs can be received via TCP/IP. This enables all printers on the server to receive print jobs using the LPR command or third party utilities.
What is the Security tab for?
When the output directory is on another server or while executing the post-print application, a security context may be needed because Virtual Port Monitor runs under the local system account, which does not have permission to access the network, or perhaps other resources. The security context entered should be local to the machine because the user profile is loaded when the post-print application is run. The user profile supplies needed environment variables and other inherited information from the all users account which will better assure that your post-print application will run properly. If this information is left blank, output is restricted to the local machine and the post-print application should have a fully qualified path.
 I entered a security context, but it isn't working properly.
Make sure you can log on to the computer that Virtual Port Monitor is installed with the credentials supplied on the security tab, then make sure you can access the resources that you expect Virtual Port Monitor to access.  This also ensures that a user profile is created for the user on the local machine.
Does Virtual Port Monitor work with Ghostscript?
Yes, and it's free! Install the Alphatronics PS driver (or some other Postscript driver) and browse for gswin32.exe on the post-processing configuration tab, then add command-line switches as required. For other types options, modify the command line in the post-print application edit box as required. The following example will cause Ghostscript to emit a PDF file:
"C:\Program Files\gs\gs8.60\bin\gswin32.exe" -r1152 -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -sOutputFile="%AVPPath%%AVPBaseFileName%.pdf" %1
This example will create a 96 DPI TIFF file:
"C:\Program Files\gs\gs8.60\bin\gswin32.exe" -r96 -sDEVICE=tiff24nc -dBATCH -dNOPAUSE -sOutputFile="%AVPPath%%AVPBaseFileName%-%02d.tif"
%1 is replaced at runtime by the output filename created by Virtual Port Monitor. The other environment variables, such as %AVPPath%, are also replaced at runtime Since the program is run as a separate process, possible memory leaks and crashes are externalized from the spooler service.
How do I install the unsigned Alphatronics PS Driver in Windows 8?
Go to Change PC Settings\General\Restart Now\Troubleshoot\Advanced options\Startup Settings\Restart and click Disable driver signature enforcement.
Once the compauter has been restarted, you can install using the add printer wizard.
How many Virtual Ports can be installed?
Virtual Port Monitor does not limit the number of ports based on the type of license. The number of ports is limited only by system resources. The Virtual Port Monitor service, which runs the post-print application, is limited to 64 ports.
Can Virtual Port Monitor print to two ports at once?
Yes. The print spooler is multithreaded, so Virtual Port Monitor will simultaneously operate with as many threads as the spooler supports.
The spooler is hung with the current job status indicating "deleting".
If the software is running in demo mode, Virtual Port Monitor displays a registration reminder for each print at the physical console and it is waiting for someone to click OK. It is also possible that a critical error occured during a write, and all internal retry attempts have been exhausted, in which case a dialog will be presented. This can occur, for example, if the destination drive becomes full or a network resource goes offline.
My batch file won't run on Windows 10 / Server 2016.
Cmd.exe no longer seems to work in session 0 in these Windows versions. Virtual Port Monitor uses the CreateProcessAsUser() API function, which in previous versions of Windows, would not execute anything but exe files. Now CreateProcessAsUser() seems to use a built-in command interpreter that uses the PATHEXT environment variable to execute batch files directly.
Instead of using "cmd.exe /c C:\MyFolder\MyBatchFile.bat", use "C:\MyFolder\MyBatchFile.bat".
All brand names are the property of their respective holders.