Linux often gets a bad rap when it comes to certain peripherals. Printers are no exception. As someone who worked as a remote engineer for a large managed service provider, I can happily confirm that printing, as a whole, is a horrible system. In the Windows environment, printing breaks often – and although Windows might enjoy a larger, more mainstream, selection of drivers, it doesn't have nearly the level of administration tools as does Linux.
Nearly all Linux desktops depend upon a very user-friendly printer configure/management tool called system-config-printer. Though there may be minor differences in the GUI (from distribution to distribution), the use of the tool is the same – and it's incredibly easy. Even without the GUI tool, managing printers in Linux is quite simple, thanks to a web front-end for the Common Unix Printing System (CUPS). With this web-based management tool, you can even configure your printers remotely.
In this piece, I will introduce you to setting up a printer using the system-config-printer tool. Once you see how easy it is, you'll worry less about using Linux as a desktop or even using Linux to share printers out.
Nearly every distribution includes the tools to manage your printers – so the chances of having to actually install something are slim. How you find that tool will depend upon your desktop. For instance, in Linux Deepin, You have to open the dash-like menu and locate the System section. Within that section, you will find Printers (Figure 1).
In Ubuntu, all you need to do is open the Dash and type printer. When the printer tool appears, click it to open system-config-printer. If you've already connected your printer to your desktop, and it is not listed in system-config-printer, be surprised. Linux has some a very long way and printer support has matured such that it has caught up with the competition.
If, however, your printer is not listed, here's how you add it.
Adding local printers
From the system-config-printer window, click on the Add button. From the resulting window (Figure 2), you can either select a listed printer to add, or if your printer isn't listed (which is unlikely), you'll need to locate drivers. The single best place to find a printer driver (aside from the printer manufacturer) is the Linux Foundation's OpenPrinting work group. The driver database with OpenPrinting is significant. You'll first want to look at the printer listings, find your printer, and see what driver OpenPrinting suggests.
Once you've added the driver, fire up system-config-printer again and click the Add button. Now your printer should be listed. Select the printer under the Devices listing and click Forward. As soon as you click Forward, system-config-printer will search for the proper driver and then present the Printer Description window (Figure 3).
All of the information in the description window should be human readable – in other words, make it something you understand (such as Laser Printer for short name, the model number for the description, and the location of the printer for location).
After you complete the description, click Apply and then, should you want to, click Print Test Page (when prompted).
Now that the printer is added, you can share that printer out so other systems have access. To do this, right-click the printer (within system-config-printer) and make sure both Enabled and Shared are checked (Figure 4). If they are not checked, click them to enable.
Adding network printers
Believe it or not, adding a network printer is nearly as simple as is adding a local printer. Naturally, the hosting system will dictate how the printer is added to the Linux system. I will assume the printer to be added is on another Linux system and on the LAN.
The first step is to open up the system-config-printer tool. Click on Add and then click Network Printer to expand. You have two options here. If the remote printer is already shared out, it very well might be listed under network printer, attached to the remote hostname (Figure 5).
If the remote host is listed, click on it and then select the printer to be added. Click Forward and then fill out the description of the printer and click Apply. The printer should now be added and working.
If the host isn't listed, you'll want to click Find Network Printer and then enter the IP address of the host, and click Find (Figure 6).
The device Uniform Resource Indicator (URI) should be automatically filled out, so all you have to do is click Forward and then give the printer a description. Once you've filled out a description, click Apply and your remote printer should be ready to use.
Linux and printing has come a very long way from the early days. Not only are the tools far more mature (and user-friendly), the support for hardware has become almost a no-brainer. If you are having trouble getting a printer to work in Linux, the most likely issue is an incorrect driver – otherwise, printing with Linux is smooth and simple.