The Linux kernel mostly supports any printer that you can plug into a
serial or parallel port, but there are things to look out for, and
printers that you won't be able to use, even though they can
(electrically speaking) communicate with Linux. Primary among these
incompatible printers are those referred to as "Windows" or "GDI"
printers. They are called this because part or all of the printer
control language and the design details of the printing mechanism are
not documented. Typically the vendor will provide a Windows driver
and happily sell only to Windows users; this is why they are called
Winprinters. In some cases the vendor also provides drivers for NT,
OS/2, or other operating systems.
Many of these printers do not work with Linux. A few of them
do, and some of them only work a little bit (usually because someone
has reverse engineered the details needed to write a driver). See the
printer support list below for details on specific printers.
A few printers are in-between. Some of NEC's models, for example,
implement a simple form of the standard printer language PCL that
allows PCL-speaking software to print at up to 300dpi, but only NEC
knows how to get the full 600dpi out of these printers.
Note that if you already have one of these Winprinters, there are
roundabout ways to get Linux to print to one, but they're rather
awkward and I've never tried it myself. See Section 12 of this
document for more discussion of Windows-only printers.
As for what printers do work with Linux, the best choice is
to buy a printer with native PostScript support. Nearly all Unix
software that produces printable output produces it in PostScript, so
obviously it'd be nice to get a printer that supports PostScript
directly. Unfortunately, PostScript support is scarce outside the
laser printer domain, and is sometimes a costly add-on.
Unix software, and the publishing industry in general, have
standardized upon Postscript as the printer control language of
choice. This happened for several reasons:
Timing
Postscript arrived as part of the Apple Laserwriter,
a perfect companion to the Macintosh, the system largely
responsible for the desktop publishing revolution of the 80s.
It's device-independent
Postscript programs can be run to
generate output on a pixel screen, a vector screen, a fax machine,
or almost any sort of printer mechanism, without the original
program needing to be changed. Postscript output will look the
same on any Postscript device, at least within the limits
of the device's capabilities. Before the creation of PDF, people
exchanged complex documents online as Postscript files. The only
reason this standard didn't "stick" was because Windows machines
didn't usually include a Postscript previewer, so Adobe specified
hyperlinks and compression for Postscript, called the result PDF,
distributed previewers for it, and invented a market for their
"distiller" tools (the functionality of which is also provided by
ghostscript's ps2pdf and pdf2ps programs).
It's a real programming language
Postscript is a complete
programming language; you can write software to do most anything in
it. This is mostly useful for defining subroutines at the start of
your program to reproduce complex things over and over throughout
your document, like a logo or a big "DRAFT" in the background.
It's open
Postscript is fully specified in a publically
available series of books (which you can find at any good
bookstore). Although Adobe invented it and provides the
dominant commercial implementation, other vendors like Aladdin
produce independently coded implementations as well.
Failing the (larger) budget necessary to buy a Postscript printer, you
can use any printer supported by Ghostscript, the free Postscript
interpreter used in lieu of actual printer Postscript support. Note
that most Linux distributions can only ship a somewhat outdated
version of Ghostscript due to the license. Fortunately, there is
usually a prepackaged up to date Ghostscript made available in each
distribution's contrib area. Please help improve the Ghostscript
printer support page by reporting your successes and failures as it
asks.
Adobe now has a new printer language called "PrintGear". I think
it's a greatly simplified binary format language with some Postscript
heritage but no Postscript compatibility. And I haven't heard of
Ghostscript supporting it. But some PrintGear printers seem to
support another language like PCL, and these printers will work with
Linux (iff the PCL is implemented in the printer and not in a Windows
driver).
If you want to buy a printer, you can look in several places to see if
it will work. The cooperatively maintained Printing HOWTO printer
database aims to be a comprehensive listing of the state of
Linux printer support. A summary of it is below; be sure to check
online for more details and information on what driver to use.
Ghostscript's
printer compatibility page has a list of some working
printers, as well as links to other pages.
Dejanews contains hundreds of
"it works" and "it doesn't work" testimonials. Try all three, and
when you're done, check that your printer is present and correct in
the
database, so that it will be listed properly in this document
in the future.
Printer compatibility list
This section is a summary of the online version. The online version
includes basic specifications, notes, links to driver information,
user-maintained documentation, manufacturer web pages, and so forth.
The online version of this list is also interactive; people can and do
add printers all the time, so be sure to check it as well. Finally,
if your printer isn't listed, add it!
Note that this listing is not gospel; people sometimes add incorrect
information, which I eventually weed out. Entries I have not
sanity-checked are merked with an asterisk (*). Verify from Dejanews
that a printer works for someone before buying it based on this list.
If you can find no information in Dejanews, mail me and I'll put you
in contact with the person who added the printer.
Printers here are categorized into three types:
Perfectly
Perfect printers work perfectly - you can print to the
full ability of the printer, including color, full resolution, etc.
In a few cases printers with undocumented "resolution enhancement"
modes that don't work are listed as perfect; generally the difference
in print quality is small enough that it isn't worth worrying about.
Mostly
You can print fine, but there may be minor limitations or
one sort or another in either printing or other features.
Partially
You can print, but maybe not in color, or only at
a poor resolution. See the online listing's notes column for
information on the limitation.
Paperweight
You can't print a darned thing; typically this will
be due to lack of a driver and/or documentation on how to write one.
In all cases, since this information is provided by dozens of people,
none of it is guaranteed to be correct; entries with an asterisk (*)
are particularly suspect. The facts, however, should be easy to
corroborate from the driver web pages and manufacturer web sites.
And without further ado, here is the printer compatibility list:
9 Pin Printers high-res*, 9 Pin Printers med-res*, AP3250*, ActionLaser 1100*, LP 8000*, LQ 850*, LQ-24*, LQ-2550*, LQ-500*, LQ-570+*, LX-1050*, SQ 1170*, Stylus Color*, Stylus Color 1520, Stylus Color 400*, Stylus Color 440, Stylus Color 460*, Stylus Color 500*, Stylus Color 600*, Stylus Color 640*, Stylus Color 800*, Stylus Color 850*, Stylus Color I*, Stylus Color II*, Stylus Color IIs*, Stylus Color PRO*, Stylus Pro XL*.
Mostly
EPL 5700*, Stylus 300*, Stylus Color 3000*, Stylus Color 660, Stylus Color 740*.
Partially
Stylus Color 300*, Stylus Color 900*, Stylus Photo 700*, Stylus Photo 750*, Stylus Photo EX*.
4039 10plus*, Optra Color 1200*, Optra Color 1275*, Optra Color 40, Optra Color 45, Optra E*, Optra E+*, Optra E310*, Optra Ep*, Optra K 1220*, Optra R+*, Optra S 1250*, Optra S 1855*, Valuewriter 300*.
It's a bit dificult to select a printer these days; there are many
models to choose from. Here are some shopping tips:
Cost
You get what you pay for. Most printers under $200-300
will print reasonably well, but printing costs a lot per page. For
some printers, it only takes one or two cartridges to add up to the
cost of a new printer! Similarly, the cheapest printers won't last
very long. The least expensive printers, for example, have a MTBF
of about three months.
Inkjets
Inkjet printheads will clog irreparably over time, so
the ability to replace the head somehow is a feature. Inkjet
printheads are expensive, with integrated head/ink cartridges
costing ten times (!) what ink-only cartridges go for, so the
ability to replace the head only when needed is a feature. Epson
Styluses tend to have fixed heads, and HP DeskJets tend to have
heads integrated into the cartridges. Canons have three-part
cartridges with independently replaceable ink tanks; I like this
design. OTOH, the HP cartridges aren't enormously more expensive,
and HP makes a better overall line; Canon is often the third choice
from the print quality standpoint. You can't win.
Lasers
Laser printers consume a drum and toner. The cheapest
designs include toner and drum together in a big cartridge; these
designs cost the most to run. The best designs for large volume
take plain toner powder or at least separate toner cartridges and
drums.
Photography
The best color photograph output is from continuous
tone printers like the Alps series (thermal transfer of dry ink or
dye sublimation). A few of the Alps units are actually affordable,
but they have poor Linux support (the one report I have speaks of
banding and grainy pictures). The more common photo-specialized
inkjets usually feature 6 color CMYKcm printing or even a 7 color
CMYKcmy process; only models with Postscript support work with
Linux, since Ghostscript doesn't seem to support 6 and 7 color
printing. Good CMYK output is nothing to sneeze at, though. All
photo-specialized printers are expensive to run; either you always
run out of blue and have to replace the whole cartridge, or the
individual color refills for your high-end photo printer cost an arm
and a leg. Special papers cost a bundle, too. See also the section
on printing photographs later in this document, and the sections on
color tuning in Ghostscript.
Speed
Speed is proportional to processing power, bandwidth, and
generally printer cost. The fastest printers will be networked
postscript printers with powerful internal processors.
Consumer-grade printers will depend partly on Ghostscript's
rendering speed, which you can affect by having a reasonably
well-powered machine; full pages of color, in particular, can
consume large amounts of host memory.
Forms
If you want to print on multicopy forms, then you need an
impact printer; many companies still make dot matrix printers, most
of which emulate traditional Epson models and thus work fine.
Labels
There are two supported lines of label printer; look for
the Dymo-Costar and the Seiko SLP models. Other models may or may
not work. Avery also makes various sizes of stick-on labels in
8.5x11 format that you can run through a regular printer.
Plotting
Big drafting formats are usually supported these days
by monster inkjets; HP is a popular choice. Mid-sized (11x17)
inkjets are also commonly used for smaller prints. Much plotting of
this sort is done with the languages RTL, HP-GL, and HP-GL/2, all of
which are simple HP proprietary vector languages usually generated
directly by application software.
What do I have?
I own an HP Deskjet 500 and a Lexmark Optra 40. Both work perfectly:
the Deskjet is an older monochrome model, well-supported by
Ghostscript; and the Optra is a more modern color inkjet with full
Postscript and PCL 5 support (!).
I also own a Hawking Technology 10/100 Ethernet print server (model
7117, actually made by Zero One Technologies in Taiwan); this makes it
possible to put the printer anywhere with power and a network jack,
instead of just near a computer. It's a little dongle that attaches
to the printer's parallel port and has an Ethernet jack on the other
side. The only flaw with this is that it doesn't allow bidirectional
communication, so I can't arrange to be sent email when the ink is
low.