Free Software for DOS >          



This page:




This page includes printing helpers (there are no print drivers here). Many of these tools were intended for use with a specific printer class or model(s) — please read the docs.

Much thanks to Howard Schwartz for extended comments and suggestions.


These programs save paper either by printing two logical pages to each physical page, but using a smaller font than the default font – or by allowing you to print on 2 sides of each page.

The second type of program is a bit dangerous because the strategy is to print the odd pages of your file first, have you turn over the stack of pages in the printer, and then print the even pages. If anything goes wrong (e.g., the printer feeds 2 pages in as one, a page prints bad or blank), the page sequence gets messed up. A safer though slower alternative is a program that stops printing after each page, and allows you to turn over the page before resuming.

Desk/LaserJet Line Print (DJLP) — Print 2 pages of ASCII text onto one sheet.


[updated 2006-03-14]

An example of the first type of program.

DJLP	[/B] [/Fsize] [/I] [/L] [/M] [/N] [/Odevice] [/Q] [/Ssize]
[/Tsize] [drive:][path]filename [[drive:][path]filename ...]

/B Turn off border (faster output)
/Fsize Font size for text [10,16,20] - default is 16
/I Ignore Form Feeds (Page Breaks) in text
/L Letter quality mode (slower output, better quality)
/M Print using a half-sized "mini" font (DeskJet only)
/N No title bar, just borders
/Odevice Output device - Printer (e.g. LPT1:) or filename
/Q Quiet mode - don't print any messages
/Ssize Size of paper (1=US Legal, 2=Euro A4) - default is US Letter
/Tsize Tab size in spaces (1-9) - default is 8

Author: Jeff Miller (1993).

1993-08-07: v1.14.

Download (16K).

Printdoc — Print text files on both sides of sheets of paper.


[updated 2006-03-14]

An example of the second type of program, for IBM and Epson dot matrix printers. It first prints the odd-numbered pages, and saves the even-numbered pages to file. After sheets are flipped, the saved pages get printed. Operates interactively, all settings are selected from menus, or typed in answer to questions.

Page size (lines)
Line width (cols.)
Text mode (Pica, Elite, Condensed, Near Letter Quality)
Printer device (prn, LPT1, LPT2)
Left margin
Page breaks (insert y/n)
Header/footer (top/bottom margin) size
Page numbers (y/n)

Author: Phillip Garding (1988).

1988-04-23: v2.1.

Download (16K).

ya2sider — Yet another 2 sider printing program.


[updated 2006-03-14]

Another example of the second type of program. Written for HP PaintJet printers.

ya2sider [-option ...] filename

-b# bottom margin of page - default-> 0
-d[f][i][p][t] - define info line, order determines info line
f - input file name
i - text from -i option
p - Page & #
t - date & time of this run
-f# form length of page - default-> 66
"-i{[b][t]}[<text>]" info line
b - info line on bottom of page
t - info line on top of page
text is msg for info line
-l# left margin odd pages - default-> 5
-o# top margin of page - default-> 0
-p# page length on form - default-> 60
-r# left margin even pages - default-> 3
"-s[f<text>][p][s]" where to send the output
f<text> - output file & name OR device name
p - stdprn
s - stdout
-t# columns per tab stop - default-> 8
-w# Width of page (line length) - default-> 80
-? prints this help message on stderr and exits

If ya2sider is started with no options, it will display page format data, and prompt for input.

Author: Ted Medin (1994).

1994-06-11: v1.0.8.

Download (27K).


These programs try to minimally prepare DOS files for decent page printing by letting you: set the page margins, adjust the number of lines on each page, put a header on each page with a page number at least, and perhaps define a header and a footer.

pr — Print two or more files as parallel columns on one page, and more.

* * * *

[updated 2005-09-24]

This classic Unix-based utility is available in real mode and protected mode versions,

Usage [real mode version]:
        pr [OPTION]... [FILE]...

+PAGE begin printing with page PAGE
-COLUMN produce COLUMN-column output and print columns down
-F, -f simulate formfeed with newlines on output
-a print columns across rather than down
-b balance columns on the last page
-c use hat notation (^G) and octal backslash notation
-d double space the output
-e[CHAR[WIDTH]] expand input CHARs (TABs) to tab WIDTH (8)
-h HEADER use HEADER instead of filename in page headers
-i[CHAR[WIDTH]] replace spaces with CHARs (TABs) to tab WIDTH (8)
-l PAGE_LENGTH set the page length to PAGE_LENGTH (66) lines
-m print all files in parallel, one in each column
-n[SEP[DIGITS]] number lines, use DIGITS (5) digits, then SEP (TAB)
-o MARGIN offset each line with MARGIN spaces (do not affect -w)
-r inhibit warning when a file cannot be opened
-s[SEP] separate columns by character SEP (TAB)
-t inhibit 5-line page headers and trailers
-v use octal backslash notation
-w PAGE_WIDTH set page width to PAGE_WIDTH (72) columns
--help display this help and exit
--version output version information and exit

-t implied by -l N when N < 10. Without -s, columns are separated by
spaces. With no FILE, or when FILE is -, read standard input.

Get it as part of a GNU Text Utilities package.

GO-LJ-PRINT — Print ASCII text files on HP LaserJet compatible printers.


[updated 2006-03-14]

Easy selection of font, symbol set, two-sided printing etc. While all parameter values can be set from the command line, most can also be stored in a BAT file or selected from popup lists. Free for non-commercial use only. Docs in English and German.

GO_PRINT [filename] [/options]

Command line parameters of static options:
/OF... output to file, e.g. /OFdat.prn creates the file DAT.PRN
/OL... output to LPT, e.g. /OL2 prints to LPT2 (default = LPT1)
/MX... sets width of printable area (default = 2330 dots)
/MY... sets height of printable area (default = 3407 dots)
/AX... sets width of left margin (default = 0)
/AY... sets height of top margin (default = 0)
/F0 treat code 12 in text file as a printable character (transparent
printing) (default)
/F... (with ... being a number >0) process code 12 in text file as vertical
tab, causing the cursor to move to the next line divisible by the
given number or to the top of the next column, e.g. /F61
/E- close text file, when code 26 is encountered
/E+ treat code 26 in text file as a printable character (default)
/8- process code 8 in text file as backspace (default)
/8+ treat code 8 in text file as a printable character (transparent
/90 treat code 9 in text file as a printable character (transparent
/9... (with ... being a number >0) process code 9 in text file as Tab
(default = 8)

Command line parameters of vital options:
/P portrait oritentation
/L landscape orientation
/I... use internal font, e.g. /I10H12V0S0B3T uses Courier 10cpi
/S... use softfont, e.g. /S14x28.sfp uses the softfont file 14X28.SFP
/C... symbol set used in text file
/2A print all pages, no two-sided printing
/2A? prompt before each page, whether it shall be printed
/2O print odd pages only
/2O? prompt before each odd page, print no even pages
/2E print even pages only
/2E? prompt before each even page, print no odd pages
/2N print nothing, only display number of pages and columns per page

Author: Gunther Olesch, Germany (1997).

1997-07-27: v1.1.

Download (97K).


Some programs try to give you some control over the print process or print queue, similar to the windows print manager. They for instance, let you pause the printer after a page, examine, suspend, stop and start jobs in a DOS print queue, etc. Another limitation of the DOS print command that is addressed, is that you cannot pipe text to it, for instance, cat file | print.

LPR — Pipes standard input into a spool file and display.
LPQ — Manipulates the print queue.


[updated 2006-03-14]

Usage: command | lpr [-v] [-h] [-p] [file [-] ....]
Spool files are created in C:SPOOL or in the directory given in SPOOLDIR
Filename arguments (wildcards may be used) are added to print queue.
Argument "-" means stdin (if redirected or piped). Stdin is assumed
if no arguments are given.
-h display help message
-v verbose mode
-p priority mode - add job(s) to head of print queue

Usage: lpq [-vhtsr1] [-c n] [-p n]
Print Queue display:
No argument - display current state of print queue
-c n - cancel job (n) from queue
-p n - rush job (n) to top of queue
-t - terminate printing and cancel all jobs
-s - suspend printing operation after current job completes
-r - resume printing operation
-v - turn on verbose mode
-1 - display 1 file per line with no other information
-h - display this help text

Package includes C source code.

Author: Richard Brittain (1989).


Download (43K).


These programs redirect print data, from the parallel port to a file instead.

LPT2DSK — Capture printer output to disk file.


[updated 2006-03-14]

LPT2DSK [p] [nnK] [F=[d:][\path]filename[.ext]]

p=1, 2 or 3 printer number for LPT1, LPT2, or LPT3
Default=1 LPT1

nn=1 to 64 the amount of memory (in multiples of 1024 bytes) to
allocate to the printer buffer. The K is required.

filename any valid dos filename (can be a device) with
optional drive, path and/or extension. The F=
is required.
Default=LPT2DSK.p where p=printer number as above
on the current drive, current directory.

Author: George G. Bouche (1986).

1986-10-03: v1.0.

Download (6K).

PRN2FILE — Redirects print jobs to a single disk file or separate files.

* * * *

[updated 2005-05-21]

A few programs on these pages support printing, but have no "save to file" option. PRN2FILE is a TSR that provides a means of redirecting print jobs to file(s).

Usage (v1.1): PRN2FILE d:path:filename.ext [/Pn] [/Bn] [/U]
Run PRN2FILE with the desired filename to activate it.
Run it again with no filename to turn off redirection.
Run it with a different filename to change destination file.
/P to designate the printer number (defaults to 1)
/B to enter buffer size in K bytes (defaults to 4)
/F to print just to file and not to printer (default is both)
/A to append to file (default is to create new file)
/U to uninstall the program

Versions: This util has gone through 3-4 revisions by different authors. PC Magazine's original v1.0 (1987), by Tom Kihlken, is still around. The latest, and recommended, v1.1 (1992) by John Durso, adds reminder beeps to indicate that prn2file is working (note that the docs omit discussion of some switches – the listing above is from the included source code). V1.1 is derived from two prior independent revisions, by Mel Brown (1989) and Russell Cummings (1991).

Includes ASM & BAS source
Includes ASM source

Go to Top | Front Page ]

©1994-2016 Rich Green.
©2004-2016, Steve Adelwitz (Short.Stop).