Configuring a modern laser printer to work with DOS, Windows 3.1 and Windows NT 3.51
I couldn’t believe it took me less than 15 minutes to get Windows NT 3.51 to print to my Brother MFC-L2750DW laser printer via LAN. Three years ago I got Windows 98 to work with this printer using D-Link LPR Client, only after a lot of trial and error. I had expected doing the same in Windows NT 3.51 to be much more challenging, but luckily, NT 3.51 supports LPR printers out of the box. One just needs to create a printer, select “HP LaserJet 5″ (or similar) under “Driver”, “Other” under “Print to”, “LPR (Line Printer Remote) Port” under “Print Destinations” and enter the IP of the printer when asked:
The printer will look like the below once added. If you need to print from a DOS prompt, click Details, and select LPT2 or LPT3 under “Print to additional ports”. Do not select LPT1 unless your PC doesn’t have a LPT1 port; otherwise printing from DOS will not work due to a port conflict.
On the printer web portal, Network tab > Protocol menu, make sure that both LPD (Line Printing Daemon) and Raw Port are selected:
Under the Service menu, enable all services:
With this, Windows NT 3.51 software such as Office 97 should be able to print to your laser printer via the network. This will work so long as the printer under PCL5, which most business laser printers do.
Unfortunately you can’t do the same on Window 3.1, as it does not support LPR printing. To workaround this, I set up a mini Window XP virtual machine on my home Ubuntu server, configure the printer on Windows XP, and then share this printer again on the network. As my printer doesn’t have Windows XP driver, I need to configure it on Windows XP as an LPR printer using the HP LaserJet 5 driver, just like Windows NT 3.51:
In Windows 3.1, add a network printer, click on the Connect button, browse to the shared printer, and install it on LPT2 using the HP LaserJet4 driver. Before this, you should verify that networking in Windows is working fine and that there are no problems accessing Samba shared folders.
Once the printer is added, you should be able to print from Windows 3.1 without issues.
To print from pure MS-DOS when Windows is not running, load Microsoft Network Client 3.0, verify that you can at least access your Samba shares from DOS, and type net use lpt2: \\mdxpshare\hplaserj (the address of the printer we shared from Windows XP). This will map the printer to LPT2, which can then be used from DOS.
Under Word 5.5 for DOS (or the DOS application you want to print from), configure the same printer on LPT2, using the LaserJet III driver from the HPLASER3.PRD printer file. If the PRD printer file does not exist, reinstall Word 5.5 for DOS, and choose to install the HP LaserJet driver.
To test printing capabilities, let’s print REPORT.DOC, a sample document that has some font effects:
This is the printout with font effects such as italic and underline. Not bad at all for a 30-year old software printing to a modern printer.
If you look closely, the lines on the printout are longer than how they look like in the editor, likely due to page margin differences. To preview exactly how your document will look like before printing, use the Print Preview menu:
I couldn’t find out how to zoom in to see the text in the Print Preview screen. I tried several keyboard shortcuts. None worked.
Printing Vietnamese documents from VietRes, a common editor for Vietnamese text back in the 1990s, works well too, at least for the common font effects. I just have to select “Laser Printer” on LPT2 from VietRes printer setup menu.
This is how the original document looks like, in VietRes’ graphics mode. The software has two modes, text and graphics. Due to the limitations of its graphics mode, not all font effects can be rendered, especially when the cursor is on the same line. These effects will be displayed as control characters instead:
In VietRes you must “load” your fonts to the printer before Vietnamese text can be displayed. The list of font files to be loaded is defined in VRLASER.LST, which contains references to .SFP font files located in the VietRes folder. Of note, I had to comment out the loading of Courier font (VNCR10NN.SFP), otherwise my Brother printer would not recognize any of the fonts loaded.
Without the loading of the Courier fonts removed, the printout would look like this. Font effects would be gone and Vietnamese accent marks would not be displayed properly. Interestingly, underlined texts still made it through:
To print to PDF on Windows 3.1, 95 and NT, I used Adobe Acrobat PDFWriter printer driver (download from here). Add it as a custom printer driver, but do not overwrite COURIER.FON or SMALLF.FON. The font files from the downloaded package was from the French version of Adobe Acrobat and might cause font issues if installed. If Windows complains about missing PDFWLIB.DLL or PDFWLIB.DRV, copy these files (present in the ZIP download) to C:\WINDOWS\SYSTEM and try again. For some reasons these files may not get copied despite the references in the INF file.
Once added, you can just print to the PDFWriter printer and it will prompt you for the save location, as well as some basic document properties. The generated file will be in PDF 1.2 format and can be opened in Adobe Acrobat 3.0 as well as modern versions of Adobe Acrobat (or any other PDF viewers).
During the process I also discovered that Adobe Acrobat 3.0 for Windows requires enhanced mode. Running it in standard mode will display the following error:
I do not believe the application really needs enhanced mode, at least not for viewing simple PDF files. Likely this is just a hard-coded check somewhere during startup of ACROBAT.EXE that can be patched away using a hex editor. That is, if I am free enough to launch IDA and study the disassembly.


















What about support East Asian CJK ?