Previous Section  < Day Day Up >  Next Section

14.1. Introduction

The Common Unix Printing System (CUPS) is a modern printing subsystem for Linux and Unix that replaces the hoary old Unix line-printer protocols. It runs on Unix, Linux, Mac OS, and Mac OS X, and it serves clients on nearly any platform, including Windows.

CUPS is thoroughly modern, supporting laser and inkjet printers as well as dot matrix and other legacy printers.

There are two versions of CUPS: the free GPL version, which is the default on most of the major Linux distributions, and a commercial edition. The commercial version comes with support, a larger selection of drivers, and nicer management interfaces.

Printer drivers in CUPS consist of one or more filters specific to a printer, which are packaged in PPD (PostScript Printer Description) files. All printers in CUPS—even non-PostScript printers—need a PPD. The PPDs contain descriptions about the printers, specific printer commands, and filters.

Filters are the heart and soul of CUPS. Filters translate print jobs to formats the printer can understand, such as PDF, HP-PCL, raster, and image files, and they pass in commands for things such as page selection and ordering. PPDs are text files—take a look in /usr/share/cups/model/ to see what they look like. Installed printers have PPDs in /etc/cups/ppd.

14.1.1 Finding Drivers

Included in CUPS are generic PPDs for 9-pin and 24-pin Epson dot matrix printers, Epson Stylus and Color Stylus Photo printers, LaserJet and HP DeskJet printers, and even Dymo label printers. These will work for hundreds of printers, but they do not support all printer functions, such as duplexing, inkjet head-cleaning and alignment, or tray selection.

There are four good sources for printer drivers, if your printer manufacturer does not supply Linux drivers:

Foomatic is a free printer-driver project that integrates with all the common Linux printing systems (CUPS, LPRng, LPD, GNUlpr, PPR, PDQ, CPS).

Gimp-Print originally started out as a Gimp plug-in, but it has expanded to support all Linux printing. Gimp-Print drivers are very high quality; if there is one for your color printer, it is probably the best choice.

Be sure to check the hardware compatibility list for your Linux distribution, or the printer database on, before purchasing a printer.

Gimp-Print and Foomatic are available as packages that you can install on your system, if they are not already included in your distribution. This ensures that you get a complete selection of drivers, plus all the required subsystems that make everything work together correctly. The RPMs are complete; Debian splits them into several smaller packages. Visit the Debian package search page to find them (

You can use the Windows drivers for PostScript printers on Linux. Look for PPD files in your Windows system directory. Note that only PPDs for real PostScript printers will work. Many printers are only PostScript-compatible; your printer documentation will tell you.

You can test PPDs at This site looks for syntax errors in PPD files. The errors it finds are usually things you can fix, such as a typo or incorrect command.

14.1.2 Networking Printers

There are four ways to share printers on a network:

  • Share printers that are attached to users' PCs.

  • Build a dedicated Linux printer server.

  • Buy network-direct printers, such as the HP JetDirect series.

  • Buy hardware printer servers, such as the Linksys EPSX3, that can connect any printer directly to your LAN.

This chapter covers the first two options. The last two are too diverse, and there are too many choices to try to cover here. Here are some things to keep in mind when you're deciding which one to use:

  • Using a Linux box as a printer server gives you maximum flexibility and customization options.

  • Network-direct printers, with built-in networking hardware, tend to be expensive and require proprietary network hardware.

  • Network-direct printers are usually built for heavy-duty use.

  • A hardware printer server lets you network any printers you want.

Using network-direct printers and hardware printer servers means less power consumption and smaller space requirements than using a PC as a dedicated printer server. You must shop carefully for Linux support, though, because some of them come with Windows-only management software. Anything that is managed via a web interface should work fine.

    Previous Section  < Day Day Up >  Next Section