Printing on Linux has traditionally been possible mainly thanks to the efforts of heroic Linux developers, with little support from printer manufacturers. The recalcitrance of so many hardware manufacturers to support Linux and other non-Windows platforms still baffles me–is there something about us that repels them? They take our money happily enough, without feeling any obligation to deliver any actual value in return. I would wish an itchy pox upon the lot of them if I were less saintly. I would also wish an itchy pox upon Linux users who don't research their purchases a bit more carefully.
But I don't really want anyone to have itchy poxes (well, almost no one), and reality is what it is, so today we're going to look at the excellent Hewlett-Packard Linux Imaging and Printing subsystem for Linux (HPLIP).
A number of printer manufacturers are now Linux-friendly to varying degrees – Samsung, Brother, Epson, Konica/Minolta, and Canon all offer their own Linux drivers, or support CUPS (Common Unix Printing System). Some support only a few models, and some are more generous. Using vendor's drivers doesn't always translate to better quality: You're often better off using CUPS' Foomatic or Gutenprint drivers. I have a special fondness for the TurboPrint drivers for color inkjet and photo printers, which are often better than even the Gutenprint drivers. Yes they cost money, about $30 US. Yes it sucks to pay extra for drivers when they should be included with the printer, especially when most of them support Mac OS X, which uses CUPS just like Linux. But it's cheaper than buying a new printer.
Visit Linux Foundation Open Printing for more information. This site replaces the old familiar Linuxprinting.org.
Hewlett-Packard has the most extensive line of well-supported Linux printers, scanners, and multi-function devices of any printer manufacturer. It even make it easy to find them (unlike the others) as this handy page shows. It also has a Sourceforge site with detailed information.
These are all supported by the HPLIP subsystem, which depends on CUPS. Most Linux distributions these days install HPLIP by default. You don't need it if you're not running any HP printers.
HPLIP is a genuine FOSS project hosted on Sourceforge. The code is released under the GPL, MIT and BSD license. So there is nothing sneaky; no antique, buggy binaries, no silly wailing about protecting precious eye pee, no funny "you can download it if you can find it" games.
HPLIP supports inkjet printers, laser printers, photo printers, and multifunction devices. So you can actually have a multifunction device where everything works on Linux. You can make pretty photo prints, send and receive faxes, make copies, and churn out reams of endless monochrome prose just like a real computer user.
HPLIP includes HPIJS, which is the basic printing driver that supports CUPS, LPD, PPR, and other spoolers. These two are packaged separately on both Debian and Fedora as hplip and hpijs. Debian packages the help documents separately in hplip-docs. If you wanted the smallest possible printing system and only needed shared printing, with no fax, scanner, or smart card readers, then HPIJS + CUPS would do the job.
The HPAIO scanner driver replaces the older HPOJ driver. This is a separate package on Fedora, libsane-hpaio, and is included in hplip on Debian.