A Bright New Future for Printing on LinuxJun 09, 1999, 07:57 (49 Talkback[s])
Michael Sweet, Easy Software Products, 9 June 1999
One of the biggest problems facing new Linux users is printing. This article describes our Common UNIX Printing System, an open source product provided under the Aladdin Free Public License, and ESP Print, a commercial product, both of which are breaking new ground for UNIX printing. While we are definitely "tooting our own horn", we hope that you'll find it both interesting and an exciting glimpse of things to come. The days of searching for printer drivers and cursing that vendor XYZ won't support your operating system will soon be gone!
One of the biggest problems facing most first time users of UNIXÂ® (and Linux, of course) is how to print from an application. This isn't because of a lack of printing support in applications, but rather because UNIX lacks a standard printing interface like MicrosoftÂ® WindowsÂ® or MacOS. The System V (lp) and Berkeley (lpr) printing systems provided with most UNIX operating systems were designed a long time ago and typically only support simple text or PostScript printers. The owner of a low cost inkjet or laser printer quickly finds out that printing is a much more complicated matter than just pressing the "print" button in an application!
A partial solution to the printing problem is to use the popular GNU GhostScript software to act as a printing filter (Red Hat Linux offers this option, for example.) PostScript files produced by an application are converted to a bitmap by GNU GhostScript which can be sent to the printer using the appropriate GNU GhostScript driver, all without any interaction from the user.
One problem with this solution is that you generally aren't taking advantage of all the features or capabilities of a printer. It is difficult if not impossible to change print settings like media size and output resolution (some applications do support this by embedding the appropriate PostScript commands in the print file.)
Another problem is that many vendors are simply unable to release source code for their drivers because of non-disclosure agreements or trade secrets. This means that they can't be integrated into GNU GhostScript at all!
What vendors really need is a standard printer driver interface that can be used to develop standalone printers drivers for UNIX.
Enter the Common UNIX Printing System, or CUPS. CUPS is designed to eliminate the printing problem. One common printing system can be used by all UNIX variants to support the printing needs of users. Printer vendors can use its modular filter interface to develop a single driver that supports a wide range of file formats with little or no effort. Since CUPS provides both the System V and Berkeley printing commands, users (and applications) can reap the benefits of this new technology with no changes.
Internally CUPS uses filter programs that allow a user or application to print many types of files without extra effort. Some filters convert job files to different formats that the printer can understand. Others perform page selection and ordering tasks. Backend filters perform the most important task of all - they send the filtered print data to the printer.
Commercial printer drivers for Linux using CUPS will be available soon in our popular ESP Print software, which supports over 1200 printers! ESP Print allows you to add a printer with a few mouse clicks, which makes installing new printers a snap. Since ESP Print uses CUPS, all of your applications will work with your printer.
We are also working with several printer vendors to license Linux drivers that will be included with their printers like the Microsoft Windows and MacOS drivers. The next printer you buy may come with a Linux driver inside the box!
Clearly a bright new future for printing on Linux is coming!
The Common UNIX Printing System, CUPS, and the CUPS logo are the trademark property of Easy Software Products. Information on ESP Print can be found at "http://www.easysw.com". Information on CUPS can be found at "http://www.cups.org". You can also contact us by telephone at +1.301.373.9600 or by email at "firstname.lastname@example.org".