How can I print with DosBox?

6

3

I'm looking for a version of dosbox with print support I saw the answers to this question Using a printer in Dosbox but I didn't manage to make it work

Sam

Posted 2011-04-13T18:00:06.160

Reputation: 85

Question was closed 2018-03-29T18:30:13.550

9"Didn´t manage to make it work", poor you. How about error messages, problem specification, things you tried? – TheBlastOne – 2012-03-08T16:27:31.440

Answers

5

You should be able to use printing with a correctly configured SVN-Daum version of DOSBox from http://ykhwong.x-y.net/

Here's the relevant parts of a correct configuration file to print from Windows 8.1, assuming you want to print to a USB (using the print dialog) and not an actual LPT dot-matrix printer.

#     Print from DOSBox using Windows print dialog
#     dosbox-SVN-Daum.conf
#     C:\Program Files (x86)\DOSBox SVN-Daum\TOOLS\Run DOSBox configuration.bat

[printer]
#     printer: Enable printer emulation.
# printoutput: Output method for finished pages: 
#                png     : Creates PNG images (default)
#                ps      : Creates Postscript
#                bmp     : Creates BMP images (very huge files, not recommend)
#                printer : Send to an actual printer (Print dialog will appear)
#   multipage: Adds all pages to one Postscript file or printer job until CTRL-F2 is     pressed.
#     timeout: (in milliseconds) if nonzero: the time the page will
#              be ejected automatically after when no more data
#              arrives at the printer.
printer=true
printoutput=printer
multipage=true
timeout=10000

[parallel]
# parallel1: parallel1-3 -- set type of device connected to lpt port.
#            Can be:
#               reallpt (direct parallel port passthrough),
#               file (records data to a file or passes it to a device),
#               printer (virtual dot-matrix printer, see [printer] section)
parallel1=printer

Now you can print using the Windows print dialogue. Personally, I print from DOS to PrimoPDF and then printing once I see the outputted PDF.

One thing that messed me up is the fact that multipage=true means that you will be stuck "Spooling" in Windows until you hit the DOSBox "print now" hotkey CTRL+F2. You can fix this problem by using a sufficient timeout. You will need this timeout to exceed the number of milliseconds that you will have between each page printed from your program. I have mine set to 10000ms (10 seconds).

By the way, you set the printer on the SVN-DAUM DOSBox one time using the Windows print dialog box. Then it's the default printer and you won't be prompted by the print dialog again. The default printer resets when you restart DOSBox (Ctrl-Alt-Home).

Derek R. Austin

Posted 2011-04-13T18:00:06.160

Reputation: 106

This is a fantastic solution and works exceptionally well at making very old DOS applications able to be used and print again. Thanks so much! – ylluminate – 2015-06-09T04:46:19.740

Without using the Daum version, what you can do is set an option in dosbox.conf to redirect parallel output to a file, and then later print that text file. – LawrenceC – 2015-12-24T13:54:07.547

2

Try using DOSBox Megabuild 6

For printing to local printer try these settings in DOSBox.conf

parallel1=reallpt
parallel2=disabled
parallel3=disabled

It works on my Windows 7 Ultimate x64

Vladimir

Posted 2011-04-13T18:00:06.160

Reputation: 21

1A link to this would be nice – Journeyman Geek – 2012-10-24T04:52:28.483

0

Use the Windows program Printfile.

On startup, run the program

"C:\Program Files (x86)\PrintFile\prfile32.exe" /s C:\SPOOL\

This will cause the program Printfile to stay resident and watch the directory C:\SPOOL (you need to create this directory), and any file that is written to this directory will be sent to the printer.

Note: after the file is printed it is erased.

Then, in your DOS programs, replace any print or writeln(lst, ) statements with writing to the file C:\SPOOL\TRASH.PCL or TRASH.TXT (the name of the file is not important - I call mine "trash") and after you close the file Printfile will send the file to the printer.

I find it works as well as printing to LPT1 in Windows XP. (I am sorry to see it go).

Robert Powers

Posted 2011-04-13T18:00:06.160

Reputation: 1

-1

echo Hello world! ^L > LPT1

(that's a CtrlL not the ^ (caret) and an L)

That should print Hello world! and spit the page out on the printer attached to LPT1. As far as printing to USB printers… forget it. With networked printers using windows networking shares, you can "capture" the printer to a port (LPT1-3) and follow the same/similar syntax.

The dosbox default build does not include any support for parallel ports. There are 3rd party builds with these features added. One such can be found here: http://home.arcor.de/h-a-l-9000/

TheCompWiz

Posted 2011-04-13T18:00:06.160

Reputation: 9 161

Nice quick way to test a printer after using @Derek R. Austin's suggestion above. – ylluminate – 2015-06-09T04:47:13.753

Thanks, but my problem is that it doesn't work with dosbox.

(I use DosBox 0.74 with Windows 7) – Sam – 2011-04-15T04:51:32.453

-1

On the DOSBOX support wiki it says that printing is not currently supported. See:

http://www.dosbox.com/wiki/Main_Page

You don't say which operating system you are using. If you're using Windows, you can use CMD.EXE where TheCompWiz's suggestion will work. That will even work with a USB printer (if it supports text printing, i.e. uses PCL as its language) as long as it's mapped to LPT1. And, if you use DOSPRN, you can even print to low-cost USB inkjets. DOSPRN is at

http://www.dosprn.com/

hdhondt

Posted 2011-04-13T18:00:06.160

Reputation: 3 244

-1

This is the answer that worked for me, adapted from https://superuser.com/a/528111/430723

  1. Download the Mega Build of DosBox at http://home.arcor.de/h-a-l-9000/megabuild.html
  2. After installing, click "Edit Configuration" under Start Menu -> DosBox
  3. Search for "print" and change the docpath to your desired directory on your computer (not necessarily the directory you mount to in DosBox). For me, I changed it to (not sure if backslashes matter vs. forward slashes, but it is DOS, so it's possible): c:\users\myname\desktop
  4. Scrolled down further, changed parallel1 to read net use LPT1: "\\yourprintserver\your printer name" /persistent:yes (my printer name had spaces in it, so I needed quotes around the path).
  5. Run DosBox as usual and it should work.

Will

Posted 2011-04-13T18:00:06.160

Reputation: 101