In the past, Unix and allied systems such as Linux did not do a very consistent job with printer interfaces. As companies such as AT&T, HP, and Sun created their own versions of Unix, they also created proprietary print interfaces. While Linux did well to adapt the LPD packages, the evolving industry standard is based on the Internet Print Protocol (IPP).
CUPS is the Linux and Unix way of working with IPP. It was developed by Novell and Xerox with four goals in mind ”to enable users to:
Find available printers on a network
Send print jobs to an IPP-configured printer
Read the status of their print jobs
Cancel any print jobs they may have created
CUPS allows you to send print jobs to a specific URI, such as parallel:/dev/lp0 .
Note | A URI is a Uniform Resource Identifier. You re probably more familiar with URLs (Uniform Resource Locators), which are a subset of URIs. As you know, a URL is used in web browsers to point to sites such as ftp://ftp.redhat.com or http://www.sybex.com . A URI can point to more things, such as mailto:abc@def.ghi , smb://comp1/printername , or parallel:/dev/lp1 . |
CUPS implements IPP in a number of different ways. Several of the standards, as shown in Table 25.1, probably seem familiar to those of you who know LPD. The standard actions shown are far from a comprehensive list. More detailed information is available from the developers of CUPS, Easy Software Products, at www.easysw.com .
Action | Description |
---|---|
| Sends a file to a printer at a specific URI |
Validate | Makes sure that a job has the right priority, printer, etc. |
Create | Sets up an empty print job |
Send | Sends a file for processing as a print job |
Cancel | Cancels a print job |
Pause | Stops action by a printer |
Resume | Resumes action by a printer |
Purge | Clears jobs from a printer s spool |
In addition, CUPS includes a number of administrative functions over and above the standard LPD system. Some of these functions are shown in Table 25.2. Once again, this is not a comprehensive list.
Action | Description |
---|---|
CUPS-Get-Default | Finds the URI for the default printer |
CUPS-Get-Printers | Finds the URIs for all printers configured on the network with CUPS |
CUPS-Add-Modify-Printers | Adds or modifies a printer through CUPS |
CUPS-Delete-Printer | Deletes a printer from a CUPS class |
CUPS-Get-Classes | Finds the types of printers available in each CUPS class |
CUPS-Add-Modify-Class | Adds a new printer class, or modifies an existing CUPS printer class |
CUPS-Delete-Class | Deletes an existing class of CUPS printers |
CUPS-Accept-Jobs | Sets a specific printer or print class to start accepting print jobs |
CUPS-Reject-Jobs | Sets a specific printer or print class to start rejecting print jobs |
With these basic concepts in mind, you re ready to learn how to configure CUPS on your computer and network.