Subject: comp.periphs.printers - FAQ - Part 5 of 11
Version: 3.09
Last-Modified: 1997/01/05
Summary: This posting contains a list of Frequently Asked
         Questions (and their answers) about printers and
         should be read by anyone wishing to post to the
         comp.periphs.printers newsgroup.
Posting-Frequency: monthly
Date: Sun, 5 Jan 1997 05:26:47 GMT
Archive-Name: comp-periphs-printers-faq

Subject: 05 Printer Drivers

A printer driver is the software which allows a particular
computer or program to make the best of the features a printer
might have. It is frequently possible to find a driver for a
particular piece of software or operating system on BBS/FTP sites
from both the company who developed the software/operating system
and the company which manufactured the printer itself. That is,
you can find specific drivers for DOS, MS Windows, AutoCad, etc.
on a printer company BBS and those same drivers might show up on
Microsoft's BBS, or that of the Autocad folks.

_______________

Subject: 05.01 Operating System specific

_______________

Subject: 05.01.01 Macintosh

_______________

Subject: 05.01.02 MS-DOS

With MS-DOS you may print a text file by copying it
to the special name "prn" (or its synonym "lpt1")
such that:

     COPY ASCII.TXT PRN

If your software program lets you "Print to a File",
you will probably need to use the /B switch on COPY
for the file to print properly to LaserJets and many
other printers. For example:

     COPY OUTPUT.BIN PRN /B

For sending a program's output to the printer you may
be able to redirect stdout to the printer. For example:

     PROGRAM ... > PRN

All three ways mentioned above perform printing in the
foreground. That means that you can't continue to work
until printing is (nearly) finished.  By using the MS-DOS
command PRINT printing is done in the background while you
may continue with your work. The system maintains a printing
queue that can be manipulated with PRINT.

Note that the file to print must contain either plain text or
control sequences for the printer connected to the PC. For
converting any application specific file format into
printable data you need the driver supplied with either the
application or the printer. If there isn't one for your
printer you're out of luck.

With the command MODE you can configure the printer port,
and you can redirect printing from the standard parallel
port (LPT1) to any serial port (e.g. COM1). Normally this
command is issued from the AUTOEXEC.BAT file.

_______________

Subject: 05.01.03 MS-Windows, Windows-NT

By installing a printer driver with these systems all
programs running under Windows or Windows-NT can use
the printer without knowing too much about the printer
connected to the system. If the print manager is active,
a program's printout is stored in a file instead of being
sent directly to the printer. When printing is finished
the print manager queues this file and sends it to the
printer as a background job. Meanwhile the program may
continue to interact with the user.

_______________

Subject: 05.01.04 OS/2

Thanks to Rod Smith for the following information:

Printing from OS/2 involves (potentially) three separate
printing systems:  OS/2, MS-Windows 3.1, and DOS.  Each OS
has its own way of handling printing (global drivers for OS/2
and Windows programs, and drivers embedded within specific
DOS programs), and OS/2 doesn't attempt to "trick" DOS or
Windows programs into thinking one printer is hooked up when
another actually is.  (One exception to this is the ability of
FaxWorks to accept output from DOS or Windows programs for the
IBM Proprinter and to convert this into a fax.)  OS/2 does,
however, provide a common print queue and spooler, so it is
possible to start print jobs from several programs at once and
not get jumbled output.

When installing a printer for OS/2, then, it is necessary to set
up separate drivers for OS/2, Windows, and each DOS program which
will print.  Typically, the Windows printer drivers that come with
the printer will work fine from OS/2's Windows subsystem, using
either "real" Windows 3.1 with OS/2 "for Windows" or with IBM's
re-compiled Win-OS/2 that comes with OS/2 "fullpack" versions. 
Simply install these drivers according to the instructions, and
you'll be set.  Similarly, drivers that come with the printer or
the program should be used for DOS programs.

There are a few tricks and caveats, however, in DOS and Windows
printing from OS/2.  First, OS/2 implements some "virtual" printer
ports, such as LPT1.OS2:, which should be used whenever possible. 
Doing so will allow OS/2 to handle printer output more effectively
than if the program attempted to print directly to the equivalent
"real" port (LPT1:, for instance).  Similarly, it's best to turn
off any "direct port access" options that Windows or the program
may offer.  Windows' Print Manager should also be disabled, since
OS/2 includes its own print spooler, and this will typically
function more effectively than the Windows 3.1 spooler.  In fact,
printing with the typical Windows settings (Print Manager active
and to LPT1:) will result in MUCH worse performance than when doing
this from DOS/Windows, whereas printing as suggested above may
result in BETTER printing performance than from DOS/Windows.

OS/2 will typically reset the printer between print jobs, and
this can cause problems with some (usually DOS) programs. 
Specifically, some DOS programs may send codes to the printer
to enable some special feature, print a page, then close the
printer file and open it again for the next page but not send
the codes again.  OS/2 will interpret this as two print jobs,
and will reset the printer to the default mode between jobs,
resulting in correct printing of the first page and incorrect
printing of subsequent pages.  If the program offers a "print
to file" option, using this and then sending the file to the
printer (either via a PRINT command from an OS/2 command prompt
or by a WPS drag-and-drop operation, selecting "printer specific
codes" from the prompt that pops up) may offer a workaround.

When OS/2 installs, it often sets up a generic text printer as
the default Windows printer driver.  This results in some
applications being unable to use TrueType fonts.  Changing the
default Windows printer back to whatever it had been before
fixes this problem.

For OS/2 native use, a few applications send text directly to
the printer; for instance, issuing a PRINT command from the
OS/2 command line will do this.  Most OS/2 applications,
however, use a printer driver which is much like a Windows
printer driver in concept; the application sends standardized
codes to OS/2, and the driver handles the formatting for a
specific printer.  OS/2 native drivers exist for most printers,
but there are some caveats.  Many color inkjet drivers for OS/2
are reportedly of much lower quality than the equivalent Windows
drivers.  Using a PostScript driver along with the freeware
GhostScript interpreter reportedly helps with many of these
printers.

The drivers that come with OS/2 for certain non-Hewlett Packard
600 dpi laser printers only support up to 300 dpi printing. 
If the printer uses the PCL 5e language, using drivers for the
HP LaserJet 4P or some other PCL 5e HP printer may actually
produce better results than using the driver identified for
that printer, though some of the driver options (for instance,
toner saving mode or downloadable fonts) may not work, so some
experimentation may be needed to get an optimal setup.  Because
of this, OS/2 users looking for a 600 dpi laser would be well
advised to restrict their search to models which are capable of
handling PCL 5e.  If satisfactory drivers for a given printer
don't come with OS/2, check the printer manufacturer's BBS or
ftp or web site.  Also check these sources for compatible
printers (e.g., HP for most laser printers).

For sending output to a parallel port, OS/2 uses a driver
called PRINT01.SYS.  (This driver operates on a lower level
than the specific printer drivers.)  On installation, OS/2
configures this driver to use a "polling" I/O method, the
same as DOS uses.  Adding the parameter "/IRQ" to the
PRINT01.SYS reference in OS/2's CONFIG.SYS file switches
this driver to use an interrupt-driven method. 

In theory, interrupt-driven printing provides lower CPU
overhead and should therefore work better in a multitasking
system such as OS/2.  Some hardware, however (including
printer ports in computers, cables, and even printers)
doesn't work well with OS/2's interrupt-driven mode. 
Similarly, sound cards are sometimes configured to use
the same IRQ as the printer port, thus causing problems
with interrupt-driven printing. 

Thus, OS/2 users may want to try both methods and see
which works best; simply change the line in CONFIG.SYS
and reboot.  Note that this change will affect printing
from OS/2, Windows, and DOS programs under OS/2, but will
not affect printing when rebooting to another OS.

OS/2 includes a built-in spooling mechanism.  When printing
very large files, it's possible to actually overrun the
available disk space with these spool files.  If you get a
message about lack of disk space when printing a large document,
try printing it in smaller sub-sections.  If this is impossible
or if this happens repeatedly, and if you have several
partitions, it may be possible to change the location of the
OS/2 spool file.  This is controlled by an entry in OS/2's .INI
files, however, and so requires use of a special .INI file
editing program, and this is potentially dangerous, and so is
not recommended for novices.

_______________

Subject: 05.01.05 UNIX

In nearly all UNIX systems printing is done by the
built-in spooler system. In rare cases you may print
directly by sending a file or any program's output to
the device where the printer is attached. Since UNIX
is a multiuser system, someone else may do the same thing
at about the same time resulting in garbage output. So you
should always use the system's spooler command. Not to
mention the fact that printer device files are often
accessible only with root privileges.

The two most common spooler systems are the Berkeley Spooler
(lpr) and the AT&T Spooler (lp). The spooler command queues
the print job and informs the spooler daemon about it. The
spooler daemon eventually starts the backend program associated
with the printer (if the printer is idle at that moment).

The backend program performs some initial setup for the device
(stty or the like) and then it sends the print job to the printer
(some backends programs scan the data during printing and convert
single linefeeds into carriage return linefeed pairs - this may
also do the device driver itself).

Note that the file to print must contain either plain text or
control sequences for the printer in question. For converting any
application specific file format into printable data you need the
driver supplied with either the application or the printer. If there
isn't one for your printer you're probably out of luck.

_______________

Subject: 05.01.06 NeXTStep/OpenStep

See the Vendor Section under Subject: 10.48 for information
on GS Corporation "a NEXTSTEP/OpenStep software developer
focusing on input/output and publishing/web tools and solutions."

_______________

Subject: 05.01.07 Others

_______________

Subject: 05.02 Program specific

_______________

Subject: 05.02.01 AutoCad

AutoCad is written and supplied by AutoDesk (which has offices in
several countries). They have various Internet and CompuServe
addresses, and have a hot-line telephone support service for
people who buy the software. Most AutoDesk outlets are
distributors, and they have many representative retailers who
on-sell their software. Even in Perth, Western Australia there
are at least three Authorized AutoDesk resellers (not bad for a
total population of just over 1,000,000 with I guess about 10,000
users!).

The newer AutoCad packages have very rigidly defined interface
protocols and if you are a printer or plotter manufacturer you
can obtain a developer's kit from AutoDesk which explains EXACTLY
how to write driver software to be compatible with AutoCad. Many
bigger manufacturers are supported directly by AutoDesk (mostly
plotters, eg OCI, Ioline, etc), but there are hundreds of
manufacturers who have written AutoDesk drivers for their
printers/plotters/whatever.

AutoDesk also manufactures a "small-user" cad package called
AutoSketch. It has a similarly rigidly defined (but much simpler)
interface protocol, and I think it directly supported Epson 9-pin
printers, but don't quote me on that!

| The AutoDesk Web Site <http://www.autodesk.com> has a nice 
| search tool that points to several documents when you query 
| "printer driver".

_______________

Subject: 05.02.02 GRAFSMAN

For information on drivers for GRAFSMAN from Soft-tek
| International, try their web site <http://www.soft-tek.com>,
| or Technical Support at <support@soft-tek.com> or 316 838-7200.

_______________

Subject: 05.02.03 Lotus 1-2-3

_______________

Subject: 05.02.04 WordPerfect

| With the sale to Novell and then Corel, I suspect the phone
| numbers have also changed, but I haven't had a chance to check.

   BBS:        801 225-4444
               801 222-4325/4369 - US Robotics/HST Modem
   CompuServe: WPFILES or WPUSERS forums.
   FAX:        800 228-9960 or 801 228-9920
|  FTP:        FTP site previously listed failed 03 Jan 1997.
|  World Wide Web: <http://www.wordperfect.com>

_______________

Subject: 05.02.05 Others

_______________

=====
End of Part 5 of 11
