November 8, 2006

Linux printing: much done and more to do

Author: Bruce Byfield

In the last seven years, printing on Linux has undergone a metamorphosis. Barely adequate printing support, provided on a program by program basis, has been transmuted by a half dozen projects into a wealth of options comparable to those available on Windows or the Mac OS. Where printer manufacturers once ignored Linux, a growing number support it and the rest are watching closely. Standardization and support for multiple distributions remain major problems, but community and corporate interests have recently started working together to address these last remaining problems.

Around the turn of the millennium, printing on Linux was haphazard and basic. Depending on the distribution, It was controlled via the lpr or LPRng systems, which are not controls for printers so much as for print spoolers -- the queues for
jobs sent to printers.

The printtool utility simplified setting up printers with these commands, but, aside from resolution, offered almost no access to printer or print job controls. Just as in the days of DOS, no standard interface existed, and each program provided its own tools for interacting with printers, such as spadmin in StarOffice.

Moreover, only the PostScript printing language was supported by Ghostscript, the software that controls printing, which meant that most printers that used the more common Printer Command Language (PCL) would not work with Linux. Nor, in the absence of manufacturer support, was there much prospect of getting more printer support, although brave efforts to reverse-engineer were underway.

Slowly, the situation began to change. Till Kamppeter and Grant Taylor founded, a database and community forum, and developed Foomatic, a database system for integrating printer drivers and spools. The Gutenprint project (formerly GIMP-Print), especially for the inkjet photo-printers that have become popular with digital camera users.

Epson funded the creation of a Ghostscript fork by Easy Software Products that supported printer languages other than PostScript, especially the widely-used PCL. Armed with these tools, the Common UNIX Printing System (CUPS) project began to provide a common interface for printing, not just for the GNOME and KDE desktops, but also for individual programs that had earlier relied on their own systems. On the desktop, configuration tools for printing, such as YaST2 in SUSE or PrinterDrake in Mandrake began giving users the printing options enjoyed on other operating systems.

Today, most printer manufacturers have at least some models that support GNU/Linux, and printer configuration has become trivial compared to seven years ago. The single largest lack of support, according to Kamppeter, is among multiple-function printers that combine printing with copying, scanning, and fax functions. Often, Linux can print using multiple-function printers, but cannot use one or more of the other functions.

Manufacturers' support today

Just as importantly, in the last seven years, printer manufacturers have started taking an interest in Linux. One of the first to do so was Hewlett-Packard (HP). John Oleinik, Linux Printing Programming Manager at HP, explains that the company had been interested in supporting non-standard operating systems since the mid-1990s, when it investigated support for WebTV. However, it was only in March 2001 that demand from the free software community and business partners convinced HP to begin releasing free drivers for its printers.

Five years later, Oleinik states that free drivers exist for 1,054 models of HP printers -- "the vast majority" of the company's product lines. Only "a couple of dozen" HP printer models do not have free drivers, and, of those, Oleinik says, about half are printers developed over a decade ago, and most of the rest have drivers being developed for them. In addition, Linux drivers are released with all new printers.

A side benefit of HP's support for Linux is that other manufacturers' printers often work with HP drivers. "My Linux printing team has never intentionally created a driver to work on another manufacturers' printer," Oleinik says, "But, because the printing languages are pretty standardized, there's always a chance that an HP driver might work on another printer."

HP currently maintains a community project called HP Linux Imaging and Printing (HPLIP), as well as the development kits and utilities to make the writing of drivers and the use of HP printer models easier. HP offers support for Linux printing through email and forums, and, according to Oleinik, phone support remains a possibility.

Few, if any, companies offer the same level of support for the free software communities as HP. But, according to Kamppeter, others that offer some degree of support include Ricoh and its various OEMs' and partners' brands, Brother, Epson, Okidata, and Océ. Others, such as Lexmark, Samsung, and Xerox offer proprietary drivers.

Some companies, like Lexmark, also offer development kits that Tim Fitzpatrick, vice president, corporate communications, describes as "a mixture of confidential binaries and sample beta reference source code modules."

However, even companies that lag in support for Linux printing are keeping a close watch on developments. The Open Source Development Lab's twice-annual Linux Printing Summit attracts representatives from all major printer manufacturers, regardless of their degree of support, and the last one in mid-October was held at Lexmark's headquarters in Lexington, Kentucky.

Next steps

These changes have brought large measures of stability and ease of use to printing, but those involved in the efforts see them as only promising beginnings. Learning that was hosted on "a server running in somebody's apartment," last summer Ian Murdock, CTO of the Free Standards Group (FSG), the larger project to which the Linux Standards Base (LSB) belongs, arranged for the site to be hosted under the name of the FSG Open Printing Database, and the move has prompted the LSB to turn its attention to printing.

As a result, Kamppeter says, the upcoming "LSB 3.2 will have printing standards for the first time, not only for application APIs/ABIs,but also for driver interfaces. This is allowing us to provide distribution-independent binary driver packages via the FSG Open Printing database where manufacturers and third-party driver developers upload and the distros' printer setup tools auto-download. So every supported printer will work with its newest driver, independent of whether the distro is older than the printer or not."

Other priorities for the future, according to Kamppeter, include "getting a common printing dialog with supports for all the printer's functionality" that includes standard reporting of errors and the replacement of PostScript with Adobe's Portable Document Format (PDF) as the standard print job transfer format "as this format is much more reliable, especially when one lets the printer server re-order or scale the pages."

In addition, Michael Sweet of Easy Software Products, the company behind CUPS, suggests that a move away from the Foomatic database might be desirable in LSB 3.2. "Foomatic-based drivers do not work with Windows clients and do not take advantage of the CUPS filter chain to optimize printing," he says. Sweet also claims that Foomatic has been over-relied upon, to the extent that a generic PostScript driver in Foomatic has sometimes been preferred over a driver specifically developed for the printer.

The exact nature of upcoming changes has still to be defined. Still, Sweet thinks that it is only a matter of time until printer support on Linux is standardized. "I'm guessing that in five more years, printing will be a solved problem," he says. "Most (if not all) new printers will be fully-supported on Linux by the printing manufacturers, and every application will provide a consistent interface tailored to the user."

Murdock generally agrees. Referring to the difficulties of supporting multiple distributions, Murdock says, "I can tell you that the printing manufacturers are very interested in this problem because, at the end of the day, it's difficult for them to support Linux because it's not always clear what Linux is." Similarly, he notes that, while early adapters might be content to research on the Internet before buying a printer, the average users who are starting to be attracted to Linux expect a higher level of service. He sees a day when not only printers but also other hardware has an LSB certified label on the box. "You can think of certification as the first step down this longer path," he says.

Despite all the improvements in printing in recent years, for the average user, that day can't come soon enough.

Bruce Byfield is a course designer and instructor, and a computer journalist who writes regularly for NewsForge,, and IT Manager's Journal.

Click Here!