Printing with CUPS, Part 1
Each variant of Unix has its own printing system with its own unique behaviors and shortcomings. Carla Schroder reveals how you can get the most out of a free, extensible, single-solution tool for Unix and Linux that standardizes printing in these environments.
The Common Unix Printing System (CUPS) is a completely new printing subsystem for Linux and Unix that replaces the hoary old Unix line-printer protocols. It runs on Unix, Linux, MacOS, and OS X, and serves clients on nearly any platform, including Windows.
CUPS is thoroughly modern, supporting modern laser and inkjet printers, as well as dot matrix and other legacy printers. It's based on the Internet Printing Protocol (IPP), which is an extension of the HyperText Transport Protocol. IPP enables printing locally, or to any networked printer anywhere, no matter how wide your LAN/WAN is. It supports access controls, authentication, quotas, directory services, and encryption.
In this two-part series we'll look at print serving with CUPS on Linux. CUPS can be administered from the command line, from its own browser-based interface, or from a number of third-party graphical front-ends. Two good front-ends to consider are Kprinter and XPP. Kprinter is especially thorough, incorporating nearly all of CUPS' commands and features in a well-organized interface.
CUPS is abundantly documented; most commands have a man page, and the CUPS Software User and CUPS Software Administrator manuals are available online (see http://localhost:631/documentation.html or visit cups.org). An additional useful resource is the book "CUPS: Common Unix Printing System," by Michael Sweet, one of the primary authors of CUPS.
KDEPrint and linuxprinting.org are a couple of indispensable resources for printing in Linux. linuxprinting.org has done a wonderful job compiling a huge database of printers and drivers, as well as rating printers for Linux compatibility.