[Openicc] printer, driver, CUPS, PPD, printing GUI, ICC-profiles, colord, Oyranos, taxi....

Jan-Peter Homann homann at colormanagement.de
Fri Jan 13 03:05:28 PST 2012


Hello to all,
being not a developer, I will tray to describe my current knowledge of 
open source color managed printing infrastructure. After an initial 
discussion through e-mail I would ask all participants to help to move 
the results to the OpenICC wiki.

Printer:
- Device for putting ink or other colorants on paper

- Driver:
Software for rasterizing bitmaps, converting it into a printer specific 
format for output and driving the printer and its options (paper tray, 
duplex options....)
- Driver can be delivered from the printer vendor or from other sources 
e.g. the Gutenprint project

- CUPS
Open Source Printing Infrastructure between the application and the 
Driver. CUPS handles e.g.
- Converting output formats from applications (e.g. PS or PDF) through 
filters into input formats for drivers
- describing printing capabilities of a Driver / Printer through the 
ASCII based format PPD
- presenting the PPD informations in the print chooser / GUI to the enduser
- selector for printer ICC profiles based on CUPS qualifiers in in the PPD
- handling printers in an IP based network infrastructure

colord / GNOME Colormanager
- Infrastructure for Device / profile mapping
- interface between profiling application (monitor, printer) and the 
device profile mapping
- targets more standard users and semi professional users
- Relations to GNOME project and Red Hat

Oyranos
- Infrastructure for Device / profile mapping
- Infrastructure for systemwide handling of colormanagement policies
- interface between profiling application (monitor, printer) and the 
device profile mapping
- targets more high-end users but also standard and semi professional users
- Relations to KDE and OpenSuse


Taxi
- Online Database for ICC-profiles containing DevieMapping informations 
and a selection process for finding ICC-profiles based on Device 
informations.
- Currently handling only monitor profiles, but could potentially 
handles also printer profiles
- Realtions to Oyranos


**************************
Known issues in the profile / device mapping process for printing

The CUPS PPD concept is a quite static concept for describing the 
capabilities of a driver/printer combination. CUPS has e.g. not defined 
a process how a PPD could dynamicly be updated with additional entries 
for media types, correlated drivers settings and associated ICC-profiles.
There are options to use the commandline to pass informations about e.g. 
media types, correlated drivers settings and associated ICC-profiles 
through CUPS to filters or drivers. But using this way, the printing 
GUI, which presents the entries from the PPD is normally bypassed.

Both colord / GNOME colormanager and Oyranos have a basic infrastructure 
to work with CUPS and provide a link to the printing GUI / print choose. 
(correct ?)
Concerning new printer profiles, colord / Gnome Colormanageg has a focus 
on profiles which are generated inside the solution. Importing printer 
profiles with embedded metadata for profile device matching and links to 
the printing GUI is currently not implemented.

Oyranos has a basic infrastructure for printer profiles with embedded 
metadata for profile device matching and links to the printing GUI.

 From my point of view, I see follwoing point for further discussions:

1) Should the complete printing GUI for the enduser should be always 
generated from the PPD ?
(If yes, we need a process for first updating the PPD with entries for 
additional mediatypes and mapped ICC profiles)

2) Should there instead be a stripped PPD without any informations for 
mediatypes and mapped ICC profiles ?
(In this case we have to define how the printing GUI is constructed and 
how the user decision from the printing GUI are injected into CUPS

3) Should we have the possibility of embedded low level driver setttings 
into the printer profile ?
Especially in the professional area, it is a typical task, that low 
level driver settings (e.g. per channel ink limit, per channel 
linearization curves) are optimized before a testchart is printed. The 
embedding the low level driver settings e.g. as driver specific 
XML-file) delvires a "bullet proof" mapping of the driver setup and the 
printer ICC profile. If only high level metadata are embedded in the 
profile (e.g. CUPS qualifiers for mediatype and resolution) we have to 
define a process that makes secure that driver settings during profile 
generation and profile application are always identical.
If we choose the option of embedding low level driver settings into the 
ICC-profile we need a mechanism, that also the needed informations for 
the printing GUI (e.g. mediatype names and resolution) are part of the 
embedded metadata. We also need a process how the data for the printing 
GUI are used to dynamicly update the entries in the printing GUI after 
the ICC profile have been installed.


****

Hope for further discussions

Best regards
Jan-Peter



-- 
----------  Please note the new adress --------------

homann colormanagement --------- fon +49 30 611 075 18
Jan-Peter Homann ------------ mobile +49 171 54 70 358
Cotheniusstr. 3 -------- http://www.colormanagement.de
10407 Berlin -------- mailto:homann at colormanagement.de




More information about the openicc mailing list