To get printing up and working on your Raspberry Pi the first thing you need to do is install CUPS. CUPS is an open source printing system developed by Apple that uses the Internet Printing Protocol (IPP) to support printing to both local and network printers.
Source: Printing at home from your Raspberry Pi (Raspberry Pi Blog)
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.
Full article here:
How to Manage Printers in Linux (Linux.com)
Sometimes your printer might not work with your Linux machine and you will have to install the necessary drivers to make it work like in Windows. Most printer manufacturers have printer drivers for Linux, but, some don’t. According the OS platform statistics posted on W3Schools, Linux has 5% and Macs around 10% market share and rest, Windows in the desktops market. With less market share Apple Macs also face peripheral compatibility issue. To tackle this, both Macs, which are Unix-based and Linux, which is Unix-like make use of CUPS (Common Unix Printing System.)
Full article here:
How to Add a Printer in Ubuntu or Linux Mint with CUPS (Linuxaria)