18. What's missing?
Many of the parts for a complete printing system do not exist yet.
Projects are underway to address most of these, although most have
not yet produced running useful code, and efforts to standardize
the necessary protocols and APIs are in their infancy.
18.1. Plumbing
There's a general problem with getting all the parts to talk to
one another; especially in a spooler-independent way. This
problem manifests itself most noticeably in the pathetic
application support for control over all the "usual" printing
features. There is simply no way for an application writer to get
information about printers, jobs, etc; no standardized way to
submit jobs; no good way to get job status back; nor even really a
standardized way to generate print data (although most of the new
desktop systems offer desktop-specific facilities for doing this).
18.2. Fonts
Font handling on free systems is rather awkward. The display, the
printer, the application, and the data files should ideally all
have access to the same fonts. Unfortunately this was simply not
the case. With the advent of xft2 and fontconfig - which the newest distributions will start deploying - this should finally be solved. Redhat 8.0 is AFAIK the first distro that uses xft2.
18.3. Drivers
There is still some work to be done on free software drivers. Although the drivers have improved a lot the last several years, not all printers are supported.
Printer vendors have a major role to play in this area. With the increasing popularity of Linux it is getting really hard for them to simple ignore this userbase.