SDB:Printer buying guide
For those looking to purchase a new printer there are unfortunately only a few places to find up-to-date and accurate information about how well a model is being supported. For example HP maintains a list of supported models and differentiates these models from its lesser or not supported options. See HP's Supported Devices Page.
Often retailers mostly have stock of models that are not yet supported due to independence between manufacturing and Linux free printer driver software development, but there are a few exceptions. For example ThinkPenguin (in the United States) maintains stock of select HP models that are supported using native open source drivers.
A good alternative is a printer that supports PostScript (and ideally also PDF) natively. These printers are generally well supported.
Tested on openSUSE
Recommended articles
Related articles
This article is for CUPS up to version 2.x under Linux with the traditional filtering system and backends there.
The nowadays driverless printing workflow is rather different.
PostScript printers
Printers with least problems are PostScript printers because PostScript is THE standard printer language that can be printed directly by PostScript printers without the need for any driver software (in general "driver" means device-model-specific software and data).
Therefore PostScript printers are recommended.
Make sure that a matching PPD (PostScript Printer Description) file is provided by the printer manufacturer for the particular printer model so that you can use all its features, such as duplex printing and different resolutions, see Concepts printing.
(Real) PostScript Printers and emulation
There are two kinds of PostScript Printers: Those that carry the PostScript trademark logo and those that emulate PostScript. The problem is the price: Getting the trademark sign is expensive, increasing the printer price. The original PostScript fonts are included with genuine PostScript printers.
PostScript version
One disadvantage of old PostScript printers (usually PostScript level 2 or less) is that they are not able to print non-ASCII/non-Latin characters, such as those of Asian languages, directly with the printer's built-in fonts. Which characters a PostScript printer can print directly depends on which fonts are built-in into the PostScript printer.
When application programs produce PostScript for printing documents (see Concepts printing) usually the needed fonts for the particular document are included by the application program into its PostScript output so that this way the PostScript printer gets the needed fonts.
Nowadays application programs may need PostScript level 3 functionality for printing documents, in particular when printing non-ASCII/non-Latin characters, such as those of Asian languages. If the PostScript version that is supported by a PostScript printer is not PostScript level 3 the PostScript printer fails to print documents from applications that need PostScript level 3 functionality for printing.
Therefore PostScript level 3 support is recommended for a PostScript printer.
PostScript+PDF printers
There is a general move away from PostScript to PDF as the standard print job format that is used by applications when printing documents so that traditional PostScript printers can no longer print application's printing output directly (see Concepts printing).
But there are also PostScript+PDF printers that can print both PostScript and PDF directly.
Therefore PostScript+PDF printers are most recommended.
Non-PostScript printers
Non-PostScript printers must support at least one standard printer language because usual free software printer drivers only support established and well known standard printer languages.
For non-PostScript monochrome laser printers the recommended standard printer language is PCL5e.
For non-PostScript color printers there is no such thing as THE recommended standard printer language. There are some printer languages which should be usually supported by free software printer drivers but the support status for a particular printer model varies.
For more information see SDB:Purchasing a Printer and Compatibility and SDB:GDI Printers.
HP printers
Most Hewlett-Packard (HP) printers are supported by free software drivers. The reason is that most HP printers support a standard printer language.
The free software drivers HPIJS and HPCUPS are developed by Hewlett-Packard itself and provided by the HPLIP software, see HP Linux Imaging and Printing and SDB:How to set-up a HP printer.
HP PostScript printers do not need driver software like HPIJS or HPCUPS for plain printing. Some special functionality of certain HP PostScript printers may need hpps (HP's print filter for PostScript) that is also provided by the HPLIP software.
Several HP printers that are supported by HPLIP do not support a standard printer language so that those models require a non-free driver software "plugin" from HP for HPLIP. Some HP USB printers even need firmware upload when switched on and their firmware is also provided by the HPLIP plugin. Because that plugin is non-free software it cannot be provided in the free software HPLIP. Therefore the plugin must be downloaded from HP and installed on the computer when needed. HPLIP provides the printer setup tool "hp-setup" and the "hp-plugin" tool which download and install the plugin from HP when needed. Devices that require the plugin cause issues, see SDB:How to set-up a HP printer. HP devices that require HP's proprietary HPLIP plugin are listed at https://developers.hp.com/hp-linux-imaging-and-printing/binary_plugin.html
Not all HP printers are supported by HPLIP, see its unsupported printers list at https://developers.hp.com/hp-linux-imaging-and-printing/supported_devices/unsupported
It is crucial to have exact model names because small differences in model names can make big differences regarding support status, see SDB:Purchasing a Printer and Compatibility.
Free software printer drivers
Depending on the particular printer driver and its particular version the support status for a particular printer model varies from "unsupported" and "untested" via "experimental" and "partially" up to "good" and "perfectly".
Examples:
- HPLIP, see also the OpenPrinting driver page for hplip and the OpenPrinting driver page for hpijs-pcl5e for the HPIJS driver in HPLIP which can be also used for compatible PCL5e-based non-HP laser printers
- Gutenprint formerly Gimp-Print, see also the OpenPrinting driver page for gutenprint
- Ghostscript with its built-in printer drivers, see also the OpenPrinting printer driver listings in particular the OpenPrinting driver page for ljet4 a built-in Ghostscript driver for PCL5e laser printers
- SpliX, see also the OpenPrinting driver page for splix
- Epson Inkjet Printer Driver (ESC/P-R) for Linux for Epson color inkjet printers that support the Epson ESC/P-R language. The software is developed by Seiko Epson Corporation and distributed by AVASYS Corporation under the GPL. See also the OpenPrinting driver page for epson-escpr
The accuracy of printer support status information in the above sources cannot be guaranteed, see SDB:Installing a Printer.
For openSUSE printer driver software packages see Concepts printing.
Prices
Printers that support a standard printer language (preferably PostScript level 3 - PDF is not really a standard printer language but additional support of PDF is recommended nevertheless) cost more money. But you don't have so much trouble in getting fine printouts from those printers, as you might have with others.
If you buy a printer, you should also calculate the total cost of ownership: This should include replacement toners (inks), replacement drum kits, the filling of printer included inks (toners), the easy to get those replacements, and finally what any trouble until you get your printer to work may cost you. If you sum up this costs, a printer that supports a standard printer language (preferably PostScript level 3 plus additional PDF support) gets suddenly comparable with other models.
When you see three different printers each one advertised as "1200 x 1200 dpi high quality printing" but one costs two times and one even ten times as much as the cheapest, do not assume that those who make the more expensive devices and those who even buy them are fools. Of course "the more expensive the better" is not right in any case. It depends on the particular use-case. But usually you get what you pay for.
Printers with non-free driver software
Some printer manufacturers provide Linux drivers as non-free software.
Often parts of their software are free but usually the actual driver functionality is non-free software, often provided as a binary-only data blob called "module" or "plugin" or "library" or whatever. A third-party driver is proprietary software when it contains at least one part which is proprietary software.
For proprietary software nobody - except the authors or vendor of the proprietary software - can provide any kind of help and support because nobody - except the authors or vendor - know how their proprietary software really works.
Non-free driver software from printer manufacturers may not work with latest versions of the standard printing software environment in Linux. Because it is non-free software nobody except the manufacturer can or is allowed to modify it to get it working again. In this case you can only contact those wherefrom you got the proprietary software for any kind of help and support.
Another problem of non-free drivers is, that there might be security issues but nobody except the manufacturer can or is allowed to fix it. You may Google for "linux printer driver setuid root" (without quotation marks).
Windows / GDI printers
Do not buy them.
It is unlikely that these printers will work under Linux.
For some outdated printers there are some drivers available but SUSE does not provide drivers for so called "GDI printers", see SDB:GDI Printers.
For those, which are nowadays in the market, there is usually no driver available at all - except the manufacturer provides a (probably non-free) driver.
In the past it happened frequently, that free software developers detected a way to support those printers. But a few month later the vendor came up with a successor model (sometimes even under the same model name) which had a different protocol implemented so that a different driver is needed and all the work done before was worthless. So, even if for a specific GDI printer a Linux driver exist, the driver will not necessarily work for the successor model.
Summary
Buy a PostScript printer that supports PostScript level 3 preferably one that also supports PDF or a monochrome laser printer that supports at least PCL5e.
Alternatively you may buy a HP printer that is supported by HPLIP or perhaps an Epson printer that is supported by the Epson Inkjet Printer Driver (ESC/P-R) for Linux.
Otherwise: Good Luck!
Printer plus Scanner all-in-one devices
Regardless that in an all-in-one device printer plus scanner appear as one single piece of hardware, the printer unit and the scanner unit are operated as separated devices where each one needs its own separated driver (when driver software is needed for the particular unit).
This means a printer+scanner all-in-one device is set up in two separated steps: The the printer unit is set up as any usual stand-alone printer and the scanner unit is set up as any usual stand-alone scanner (cf. SDB:Configuring Scanners).
For example when an all-in-one device contains a PostScript printer, the printer unit does not need a driver but nevertheless the scanner unit may need a driver (perhaps even special proprietary driver software).
Regarding professional all-in-one devices that can be used without any driver (provided the printer unit is a PostScript printer) see the section "How to use a professional network printer scanner copier all-in-one device" in SDB:Configuring Scanners. Regarding printing via network see SDB:Printing via TCP/IP network.