Next Previous Contents

4. Supported Printers

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 that rely on the "Windows Printing System". (They're often vaguely labelled "for Windows", or called "GDI" printers.) These printers do not work with Linux. They haven't any "smarts" at all, and rely on the computer CPU to do most of the work that has been traditionally done by the printer's CPU. Unfortunately, this work can only be done by the vendor-supplied drivers, which only run under Windows. So don't buy one to use with Linux. (Note that if you already have one, 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.)

4.1 Postscript

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 and the printer largely responsible for the desktop publishing revolution of the 80s.

It's device-independant

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 changes. Postscript output will look the same on any postscript device, at least within the limits provided by the printer'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. But I digress...

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 independantly coded implementations as well.

4.2 Non-Postscript

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. The Ghostscript Home Page has a list of supported printers and information on the status of new and experimental drivers. Note that this page lists supported printers in the latest version of Ghostscript, while 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.

4.3 Printer-specific notes

This section is and will always be incomplete. But whatever information I do put here should always be correct, so here goes:

Canon

Canon makes an assortment of inkjet printers.

BJ-10ex

One report suggests that the this Canon works much better in Epson LQ mode (as set by a dip switch). Apparently output was intermittent or wrong in Canon mode. OTOH, there is much explicit Canon support in Ghostscript, so this might have been a fluke.

BJ-200

The 200 and 210 work in black and white mode. See Patrick Lambert's page for more information.

Lexmark

Lexmark (once part of IBM, I think) makes many printers; many of them, however, are Windows-only printers:

Other Lexmark printers may or may not work.
Optra Color 40 and 45

All sorts of things like alignment, cartridge loading, and so on are done under (Windows) software control. However, Lexmark has provided a Unix C program to perform these things under Linux. It is available from my download area. Thanks to Dale Snider for pestering Lexmark and obtaining this program.

Epson

Various models of the Epson Stylus Color are well supported by Ghostscript 5.x's Uniprint driver scheme. See Michael Holve's page for more information.

NEC SuperScript

NEC's series of low-cost laser printers provides both PCL and PrintGear support and are generally attractive printers. Unfortunately, in many of these models, the PCL support is for PCL level 4.5, which allows printing at only 300dpi. PCL levels 5e, 6, and above do allow for 600dpi output.

Hewlett Packard

DeskJets

Most HP DeskJets work, but there are various flavors of them. Most are PCL level 3 printers; there is an hpdj driver for them (and any other PCL 3 printers) by Martin Lottermoser. The 710, 720C, 722C, 820C, and 1000C are PPA printers, which can be used in black and white with Tom Norman's pbm2ppa utility.

LaserJets

Most Laserjets work fine, as well. The Postscript option is ideal, but failing that Ghostscript's PCL support will work as well.

JetDirect

HP's JetDirect-equipped printers (ie, ethernet printers) can be administered using HP's WebJet software, which is available for Linux.


Next Previous Contents