Previous Page
Next Page

2.5. Configuring Printing

In order to print from your Fedora system, you have to configure at least one print queue to manage documents waiting to be printed. For printers directly connected to your computer, this process is fully automatic, and for other printers (such as those on your network), it is very simple.

2.5.1. How Do I Do That?

Select the menu option SystemAdministrationPrinting (in KDE, it is AdministrationPrinting). You will be prompted to enter the root password, and then the printer configuration window will appear, as shown in Figure 2-16. If any print queues have been previously defined, they will be listed on the left side of the window, grouped according to connection type; if you click on one of these printers, the configuration details for that printer will appear on the right.

Figure 2-16. Printer configuration window Add a new print queue

USB and parallel printers, as well as network printers that use the Internet Print Protocol (IPP), will be detected and configured automatically; you can adjust the printer configuration by editing the values in the main printer-configuration window (Figure 2-16) and then clicking Apply.

Other printers must be configured manually. Click on the New Printer icon to access the window shown in Figure 2-17.

Figure 2-17. New Printer window

Enter the name of the printer, which should be short and contain no spaces. I recommend using the generic printer type followed by a number (e.g., laser3 or inkjet0); even if you only have one printer now, you may add more in the future. If desired, you can add verbose description and location information. Click Forward to proceed to the connection configuration step, shown in Figure 2-18.

Figure 2-18. Printer connection configuration

The Devices list shows all detected local printers, plus serial ports and common network printing protocols. Select the appropriate option; for network printers, you will need to enter the IP address or hostname as well as the printer or queue name. Press Forward to proceed to the driver configuration step, shown in the left side of Figure 2-19. Select the printer manufacturer, then click Forward; on the next display (shown on the right side of Figure 2-19), select the printer model. Use the Comments buttons to display information about the printer, driver, or PPD file.

The Drivers list may present more than one driver option. In almost all cases, it is best to use the default driver.

Click Forward, then click Apply on the confirmation dialog that appears.

Figure 2-19. Printer driver selection Edit an existing print queue

To change an existing queue configuration, select the printer in the main window (Figure 2-16) and edit the option values on the tabs:


Configures the printer description, location, connection details, printer driver, and printer status (enabled/accepting/shared). Enabled means the the queue contents will be sent to the printer; accepting means that new print requests may be enqueued.


Configures starting and ending banner pages (which identify each print job) and the action to be taken when a printer error occurs.

Access control

Used to restrict printer access to specific users, or to prevent specific users from accessing the printer.

Printer options

Configures the default settings for printer features such as stapling, duplexing, media, ink cartridge type, and resolution. Set the default print queue

The default print queue is used for all print requests that do not specify a queue. To set the default, select a printer and then click Make Default Printer. Click Apply to activate your change. Printing

The command lpr (line printer requester) is used to place a print request into a queue. When used from the command line, lpr can accept input from standard input or from a specified file. For example, to print the file

$ lpr

Or to print the calendar for the year, generated by the cal -y command:

$ cal -y | lpr

To specify a specific print queue (such as laser3), add the -P argument along with the name of the queue:

$ lpr -P laser3
$ cal -y | lpr -P laser3

You can view the status of a print queue, including the documents in the queue, by clicking on the printer icon that appears in the notification area of the GNOME panel bar. The window shown in Figure 2-20 will appear; this window shows all print requests made by you on all print queues. To delete a document from the queue, right-click on it and select the Cancel document option.

Figure 2-20. Document print-status window

The lpq command provides another way of viewing a queue's contents:

$ lpq
inkjet0 is ready
no entries

While the graphical Document print-status window shows requests by one user on all queues, lpq shows requests by all users on a single queue. The output in the previous example shows that there are no documents in the default queue inkjet0. You can specify a specific printer queue using the -P argument:

$ lpq -P laser3
laser3 is ready and printing
Rank    Owner   Job     File(s)                         Total Size
active  chris   91                       124928 bytes
2       jason   92                  523423 bytes

In this case, there are two jobs in the queue; job 91 is printing, and job 92 is scheduled to be printed next.

You can delete a document using the lprm command, which accepts a job number (the default is the active job) and the -P option to specify the print queue. This command will delete job 92 on the print queue laser3:

$ lprm -P laser3 92

2.5.2. How Does It Work?

Fedora's printing system combines four fairly complex tools into a comprehensive print solution. The Common Unix Printing System (CUPS) provides queue management and printer sharing; the Foomatic system provides access to the large database of printer configuration information and notes maintained by; Ghostscript converts PostScript, the most common printer output format used by Linux applications, into other formats for use by non-PostScript printers; and the system-config-printer script provides the user interface for printer configuration.

system-config-printer manipulates the CUPS configuration files in /etc/cups and restarts the CUPS server ( cupsd) to load configuration changes. These files can be edited by hand, but this is not recommended.

CUPS provides queue management, storing queued documents in /var/spool/cups until they are printed. It is heavily tied into the Internet Print Protocol (IPP), which is based on the web protocol HTTP. You can connect to the CUPS server's administrative interface by accessing the address http://localhost:631/ through a web browser; however, if you do any configuration through that interface, you may no longer be able to use system-config-printer, which is generally a better configuration tool.

Applications vary enormously in the quality of their interface into the print system:

  • Programs with the most advanced print control, such as, load the list of queues from CUPS, including each queue's capabilities. They also let you set print optionssuch as duplexing, ink mode, paper type, and resolutionusing the Properties button in the print dialog.

  • Other applications, such as Firefox and Evince, load the queue list but don't permit full control over print options. You can select the queue from a drop-down list in the print dialog.

  • Many other programs such as xpdf simply allow you to specify the lpr command to be used; queue selection is performed using lpr's -P option.

The printer icon in the GNOME panel's notification area is provided by the eggcups program.

2.5.3. What About... ...creating a group of similar printers that are accessed on a first-available-printer basis?

This is called a printer class; to create one, use the New Class button in the graphical configuration tool. Add the desired printers to the printer class and click Apply; you can then print to the printer class instead of a specific printer, and the first available printer will be used to print your document. ...setting up more than one queue for a printer?

Not only is it possible to set up more than one queue for a printer, it's a good idea, because each queue can have a different driver configuration.

For example, I have a color inkjet printer, which is used in text mode with plain paper and in a photo mode with photo paper. I have created three separate queues: color0-draft for fast, low-quality printing that saves ink; color0 for regular printing; and color0-photo for photo printing. The appropriate driver options have been set for each. Although it is possible to create just one queue and set the resolution and paper type within some applications, not all applications are capable of setting those options, and it's simply faster and more convenient to have preconfigured queues. Similarly, I have single- and double-sided queues for my laser printer.

Printer queues are created with default driver options. To adjust the driver options, create the queue, and then use the Printer Options tab to access the driver settings. ...making a PDF instead of printing?

Many applications that don't provide PDF output do provide the ability to print to a file instead of printing to an output queue; this feature can be used to save a PostScript copy of the print request, which you can then convert to a PDF by using Ghostscript via the ps2pdf script.

For example, you could "print" from Firefox to the file and then convert to bankstatement.pdf with this command:

$ ps2pdf

The resulting PDF file can be viewed with Evince, xpdf, or Adobe Acrobat Reader (not installed by default). ...using an HP multifunction printer?

HP produces several lines of multifunction printer/copier/scanner devices that use a multiplexed communication protocol; the printer and scanner are accessed through a single connection. The software necessary to access these devices is built into Fedora Core; just ensure that the hplip service is running.

2.5.4. Where Can I Learn More?

  • The manpages for lpr, lpq, and lprm

  • (home of Foomatic and compatibility reports for hundreds of different printers):

  • CUPS web site:

  • Ghostscript web site:

  • Configuring your firewall to permit remote access to CUPS printers: "Preventing Unwanted Connections"

  • Configuring the print service to start automatically (or not to start): Lab 4.5, "Using Runlevels"

  • Sharing printers using Microsoft Windows File & Print sharing: "Configuring Samba to Share Files with Windows"

Previous Page
Next Page