SDB:Purchasing a Printer and Compatibility
You plan to buy a certain printer or you already have a printer and would like to know if the printer can be used with Linux.
Search the information sources listed in the Support Database article SDB:Installing a Printer
Please note that the accuracy of these sources cannot be guaranteed, as the Linux support information is usually based on customer and user statements.
Moreover, "supported" usually means "average performance", not "full support of all functions".
The use of the maximum resolution or speed specified by the manufacturer is often not possible even on supported printers.
As we do not want to favor any manufacturer above other manufacturers, we cannot provide any special hardware recommendations. Furthermore, the ideal printer always depends on the individual user requirements.
The most important precondition for smooth printer operation is to use a suitable printer. The selection of the print system (CUPS oder LPRng/lpdfilter) is of secondary importance, as both print systems work smoothly. Problems with the print system can usually be eliminated by modifying the configuration. Though it may not be possible to accommodate all wishes, an adequate solution can be configured for most problems. In contrast, problems caused by an unsuitable printer can usually not be eliminated by simply modifying the configuration of the print server.
Print Quality (DPI vs. Memory Usage)
PCL5e should be supported by b/w laser printers. In this way, the Ghostscript drivers ljet4 and lj4dith will work, and 600 dpi resolution can be used for printing, provided the internal printer memory is at least 4 MB. If the memory is insufficient, refer to the article SDB:Laser Printer Does Not Print Properly Or Does Not Print At All
To be able to print complex pages efficiently with 1200 dpi, the printer should have an internal memory of about 16 MB and support PCL6 or PCLXL, thus enabling the use of the Ghostscript drivers lj5mono, lj5gray, or pxlmono.
Though 1200 dpi provides hardly any visible improvement over 600 dpi, it consumes four times as much CPU performance and memory than 600 dpi. Compared to 300 dpi, 600 dpi provides a much better result. Thus, 600 dpi is a good choice, both in terms of the print quality and the CPU and memory usage.
Going by the underlying concept, PostScript printers are the best choice, as PostScript is the standard printer language in Unix/Linux. However, this only applies to high-quality PostScript printers that have a mature PostScript implementation and enough memory and computing power to render even complex pages at a reasonable speed.
Normally PostScript printers also support the printer languages PCL5e and PCL6/PCLXL, thus allowing even problematic PostScript files to be printed via PCL5e or PCL6/PCLXL. Often, the PostScript printer's optimum quality cannot be reached in PCL5e or PCL6/PCLXL mode (e.g., the resolution may be limited to 600 dpi in PCL5e). Still, a PostScript + PCL5e (+ PCL6/PCLXL) printer is the most versatile solution, as such a device can print virtually anything printable in an acceptable quality.
Some PostScript printers can even process PDF data directly. The above said also applies to PostScript + PDF printers.
However, purchasing a high-quality PostScript printer for the sole purpose of circumventing the driver problem is unnecessary, as PCL5e or PCL6/PCLXL printers also deliver fine results.
Nevertheless, a high-quality PostScript printer combined with the CUPS print system makes sense if the device supports functions such as the following:
* Duplex printing + Long-edge binding + Short-edge binding * Several paper trays + Several trays for the print output + Several paper feed trays + Several trays for various paper sizes * Various internal print settings + Resolution - 300 dpi - 600 dpi - 1200 dpi + Color depth or grayscale per pixel - 1 (memory usage 1 bit per pixel) - 256 (memory usage 8 bits per pixel) - 65536 (memory usage 16 bits per pixel) + Saturation - Little toner (toner saving mode) - Normal
A decent PostScript printer is always accompanied by a suitable PPD file of the manufacturer. The CUPS print system can be used to make the settings defined in the PPD file available to all users and for every print job. Refer to the item "General information on setting up PostScript printers" in the article SDB:Printer Configuration from SUSE LINUX 9.1 on
Potential Problems with PostScript Printers
On PostScript + PCL5e (+ PCL6/PCLXL) printers, the said options are usually only available and combinable in the PostScript mode. In the PCL5e or in the PCL6/PCLXL mode, the options are limited. Though the resolution can be set and suitable drivers can be used to set the grayscale type (ljet4/lj4dith or lj5mono/lj5gray) and duplex printing (ljet4/ljet4d), these options cannot be combined freely.
PostScript printers often have problems with highly complex PostScript files, especially if the PostScript printer does not have enough memory to process the bitmap graphics embedded in the PostScript files. If the PostScript file contains embedded graphics, the problem may be solved by reducing the resolution and color depth in the PostScript file itself (not the printer's resolution setting), if this is possible, as a bitmap image at 1200 x 1200 dpi consumes 16 times more memory than it would at 300 x 300 dpi. A color depth of 32 bits consumes 32 times more memory than 1-bit b/w mode. Accordingly, a bitmap image at 1200 x 1200 dpi and 32-bit color depth consumes 500 times more memory than the same image in 1-bit b/w mode at 300 x 300 dpi resolution.
PostScript printers also fail if the PostScript level supported by the built-in PostScript interpreter is too low. The majority of older PostScript printers support PostScript level 2. However, an increasing number of applications now generate PostScript level 3 by default. If special PostScript level 3 commands are used, PostScript level 2 printers cannot print these data properly or not at all. Refer to the example discussed under the item "Printing from Mozilla" in the article SDB:Printer Configuration from SUSE LINUX 9.1 on
PostScript printers deliver faulty output if the built-in character sets do not contain all needed characters. For example, most older PostScript printers cannot print the Euro symbol directly. This can be solved if the application provides the needed characters sets in the PostScript output.
What Is to Be Printed?
Laser Printers vs. Inkjet Printers
A sturdy b/w laser printer that supports the PCL5e printer language and has an internal memory of at least 4 MB is a good choice as a standard printer (without any special extensions like trays etc.).
Possibly you may want to purchase a more complex model that allows for extensions such as the following:
- Duplex unit - Additional trays - Network connection - PostScript module + additional memory
In time, a printer of this kind can be upgraded to a high-quality PostScript printer. Alternatively, you can postpone the purchase of a complete high-quality PostScript printer with all required extensions until you really need it.
For color printing, the most suitable choice is a sturdy inkjet printer that meets the requirements listed below, as a good color laser printer is very expensive. If you need photograph-grade quality, the inkjet printer should be supported by the "hpijs" driver and/or the "gimpprint/stp" driver.
Regarding color inkjet printers, refer to the URLs listed in the article SDB:Installing a Printer
You could also try to get information on the Linux support status of the printer models directly from the manufacturer, as the manufacturer is in the best position to test the model under Linux (especially new printer models). This will also reveal the differences in the level of Linux support by the individual printer manufacturers.
If the manufacturer cannot provide any Linux-relevant information on your printer model, proceed as follows:
Check if your printer is compatible with a model that is supported under Linux and use the Ghostscript driver for the respective compatible model.
"Compatible under Linux" means that your printer can be addressed correctly with the same binary control sequences as the compatible printer model, i.e. no special driver (e.g., for Windows) is needed to emulate the printer language. The article SDB:GDI Printers
Similar printer designations do not necessarily imply compatibility. Even printers with similar designations may not understand the same printer language directly. The printer language is often specified under the printer specifications in the printer manual. If necessary, ask the manufacturer which printer language your printer understands directly.
Examples for standard printer languages:
- ASCII text
Normally, every printer should be able to print ASCII text directly. However, GDI printers designed exclusively for Windows are not able to print ASCII text or data in one of the following standard printer languages.
Moreover, some printers cannot print ASCII text directly, but can be addressed by means of one of the following standard printer languages.
- PostScript level 2 or level 3
Though being relatively expensive, printers that understand PostScript level 2 or level 3 directly are the easiest to use, as PostScript is the standard printer language in Unix/Linux.
To make sure that printing complex documents is not too slow, check how fast the printer's built-in PostScript interpreter operates.
If a non-PostScript printer is used, the print output is generated with Ghostscript in one of the following standard printer languages.
- PCL5e or PCL6
Printers that understand PCL5e (often simply referred to as PCL5) or PCL6 directly should work with the Ghostscript driver ljet4 up to a resolution of 600 x 600 dpi.
- PCL4 or PCL5
Printers that understand PCL4 or PCL5 directly should work with the Ghostscript driver laserjet, ljetplus, ljet2p, or ljet3. However, the resolution is limited to 300 x 300 dpi.
Printers that understand PCL3 directly should work with the Ghostscript drivers deskjet, hpdj, pcl3, cdjmono, cdj500, or cdj550.
ESC/P2, ESC/P or ESC/P Raster
Printers that understand ESC/P2, ESC/P, or ESC/P Raster directly should work with the Ghostscript driver stcolor or with the Ghostscript driver uniprint combined with a suitable parameter file *.upp (e.g., stcany.upp).
However, compared to ESC/P2, ESC/P Raster has some limitations, which may result in problems with the Ghostscript drivers originally prepared for ESC/P2 printers.
We would appreciate your feedback in case you find a suitable configuration for your printer.
As we cannot test all printer models available in the market ourselves, we depend heavily on the feedback of our customers.
Consequently, we would like to share your solution with all our customers and Linux users, e.g. by way of our Hardware Database. In your report, please provide a precise description of the printer driver you use, the menu entries you selected in the YaST printer configuration, the quality of the print output, and any limitations (only b/w, only a certain resolution, modified colors, etc.). Moreover, we need to know if you customized anything or if it worked smoothly with the standard configuration.
If possible, you should also inform LinuxPrinting.org. See "How to Contribute: Data".
If your printer is not supported:
If no Linux driver is available for your printer, inform the manufacturer and draw his attention to the article SDB:Information for Printer Manufacturers Regarding Linux Support