Printing from DOS Programs –– DOSPrint (version 2003.03.03) and PrintFile (version 2.1.5)
Screen Shots of PrintFile (click on the image to enlarge)
I found a recipe program that was once many years ago required to be purchased but was changed to freeware status. Even though the program is written entirely in DOS, I still liked it. Most versions of Windows still have the ability to open DOS programs. The program worked perfectly except I could not print from the program. I was able export a recipe to a file and print the file using another text program like Notepad, but it would not print using the print option directly from the program. When I looked at the printer setup in the program, I found I could select LPT1, LPT2 or LPT3 which I later discovered were called ports. I discovered my printer did not support this type of port but instead uses a USB port to connect the printer to the CPU. I performed searches on the internet to find a solution. In my searches, I discovered several forums where others reported the same problem while trying to print from legacy DOS programs but no solutions. I’ve thought about reviewing the recipe program (Meal Master) but since you can’t use a mouse with it, I decided most people may not like it. However, I do think some people may find my solution useful when printing from legacy DOS programs.I tried PRN2FILE which is a DOS utility that redirects the printer output from the LPT port to a text file which I thought could be redirected to my USB printer. Unfortunately, I was never able to print from Meal Master to a text file with it. I decided to try something else. My searches eventually brought me to the DOSPrint web site, which said it could capture LPT1 through LPT9 directly to local LPT, USB, or TCP/IP printers. When I started using it though, I still had problems. When I selected something to print from Meal Master, the software for my printer would produce indications on my computer screen that it was printing but it would never actually print. I decided that DOSPrint must not be compatible with the software for my Canon Multipass printer. I found a solution by setting up a dummy printer that would use the print to file function available on Windows. So when I printed from Meal Master, it would save a file to a folder on my C drive. I then found another program called PrintFile that has a “spooling” function. It monitors the folder on my C drive for the file, prints it and then deletes the file. It may seem like a complicated solution but it works. I do recommend that you try DOSPrint and have it print directly to your printer first. If that doesn’t work, try my PrintFile spooling approach. I wrote a procedure on how to do this below:
1. Download DOSPrint and unzip its contents to a new folder called C:\Program Files\DOSPrint.
2. Create a shortcut with the target "C:\Program Files\DOSPrint\DOSPrintUI.exe" and name the shortcut “DOSPrint”.
3. Save the shortcut to your “Startup” menu which is most likely in the folder C:\Documents and Settings\All Users\Start Menu\Programs\Startup.
4. Determine the LPT number to which your legacy DOS program prints (or set it to LPT1).
5. Open DOSPrint by clicking on the Windows “Start” button, then “Programs” then “Startup” and then “DOSPrint”.
6. Highlight the LPT number to which your legacy DOS program prints.
7. Click on “Set” and select your printer from the list.
8. Try printing something from your legacy DOS program. If it prints, you are done. If it doesn’t, continue with the next step.
9. Add a new folder to your C drive, C:\spool
10. Add a new printer as follows:
a. Go to the Windows control panel and open the printers option. Click on “Add Printer”.
b. Click "Next" on the "Welcome to the Add Printer Wizard" dialog box.
c. Select "Local printer" and uncheck "Automatically detect and install...", click "Next".
d. Click "Create a new port", type has to be "Local Port" and click "Next".
e. Enter: C:\spool\dos.txt when prompted for port name, click "OK".
f. Select "Generic" from the "Manufacturers" and "Generic / Text Only" from "Printers", click “Next”.
g. The next dialog will prompt you for printer name and enter “DOS Printing”, select "No" to use this printer as default and click "Next".
h. In printer sharing dialog select "Do not share this printer" and click "Next".
i. Select "No" to print a test page and click "Next".
j. Click Finish.
11. Install PrintFile.
12. Set up PrintFile as shown in the screen shots above. In the “Settings” option, be sure that “Enable Spooler function” is checked. In the “Settings” option, click on “Conversion…” and ensure the option “Enable conversion of:” is unchecked.
13. Create a shortcut with the target "C:\Program Files\PrintFile\PRFILE32.EXE" /s:c:\spool\dos.txt (exactly like this with the quotes) and name the shortcut “PrintFile”.
14. Save the shortcut to your “Startup” menu.
15. Open DOSPrint.
16. Click on “Set” and then select “DOS Printing” from the list of printers.
17. Click on “OK”.
There are several settings in PrintFile that will change the appearance of your printed copies. You may want to read the help file that is downloaded with the program for assistance.
According to the documentation, DOSPrint requires Windows NT 4.0, 2000, or XP. Windows 9x is not supported. The file downloaded from DOSPrint is a compressed file, DOSPrint.zip. When unzipped, it produces 3 files DOSPrintUI.exe, DOSPrint.PDF, DOSPrint.exe that you save as identified in the directions. The PrintFile documentation states it needs one of the following versions of Microsoft Windows, 3.1x, 95, 98, ME, NT 3.51 or later, 2000 or XP. The PrintFile download produces compressed file prf215.zip which when unzipped produces files PrFile32.exe, PrFile.exe and SETUP.EXE with some other text and help files. The download contains both 16 and 32 bit versions of the software. Double clicking on the SETUP.EXE with your file manager will result in the installation program choosing the correct executable for your operating system.