[cups.general] RFC: New Driver Rating/Information Attributes

Johannes Meixner jsmeix at suse.de
Fri Jan 26 04:39:50 PST 2007


Hello,

On Jan 25 09:06 Michael Sweet wrote (shortened):
> DRIVER RATING ATTRIBUTES
> ------------------------
> 
> The new driver rating attributes would track the following values:
> 
>      1. The author of the driver.
>      2. The type of driver - PostScript, Foomatic, OPVP, CUPS raster.
>      3. The percentage of printer features/capabilities that are
>         supported.
>      4. The print speed (milliseconds per page) when printing a sample
>         text page (probably lorum ipsum style text to fill the page at
>         10 cpi/6 lpi) in black at the maximum resolution
>      5. The print speed when printing a sample PDF file containing a
>         mix of text and "business" graphics (bar charts, etc.) in
>         color if supported by the printer and at the maximum resolution
>      6. The print speed when printing a 2560x2048 photograph in
>         color if supported by the printer and at the maximum resolution

I suggest to add for each "speed" attribute a mandatory
"quality" attribute which reperesents how good the printout
looks for the respective sample (e.g. a very fast driver
which produces fuzzy text output or wrong colors should
get lower rating than a medium speed driver which produces
good output quality).

I suggest to add for each "speed" attribute an optional
"cost" attribute which reperesents how much load it causes
on a print server to produce the printer specific data.

I suggest to add for each attribute an optional "weight"
to make it possible that some attributes have higher priority
than others (e.g. the "weight" for the "quality" attributes
might be 4 and for the "speed" attributes 2 and for the
"cost" attributes the default 1 to that "quality" is
heavier than "speed" and "cost" together).

Note that it is crucial to have the weight seperated
from the value which describes quality, speed, and cost
because only with seperated weights a printer setup tool
can use different weights than what is in the PPD if
the user has selected to focus on a particular attribute
(e.g. if the user's main interest is "speed" the
printer setup tool may use a weight of 2 for quality,
1 for cost and 10 for speed).

See my other mail about probabilities and weights under the
mail subject 'Why not "recommend" PPDs in the NickName?'


> cupsDriverAuthor (ppd-author text)
> ----------------------------------
....
> Examples:
>
>     *% HP PostScript printer driver without filters
>     *cupsDriverAuthor: "HP"
>
>      *% ALPS printer driver using Foomatic
>      *cupsDriverAuthor: "Masakazu Higaki"
> 
>      *% Gutenprint printer driver
>      *cupsDriverAuthor: "Gutenprint"

I sugest to allow translation strings so that a printer setup
tool could provide more meaninfgful information to the user
(instead of hiding them in PPD file comments) and use the
main-keyword option-keyword/translation-string: "value"
syntax for this like (lines wrapped only here in the mail):

*cupsDriverAuthor HP/HP PostScript printer driver without
 filters: "HP"

*cupsDriverAuthor MasakazuHigaki/ALPS printer driver using
 Foomatic: "Masakazu Higaki"

*cupsDriverAuthor Gutenprint/Gutenprint printer driver: "Gutenprint"


> cupsDriverRating (ppd-rating integer(0:100))
> --------------------------------------------
> 
>      *cupsDriverRating: percentage
> 
> This integer attribute specifies the percentage of device printing
> features and capabilities that are supported by the driver.  For
> example, if a device supports 2 color modes (black and CMYK),
> 4 resolutions (300, 600, 1200x600, 1200), 3 page sizes (a4, letter,
> legal), and 2 paper trays (cassette and manual feed), for a total
> of 11 features and capabilities.  If the driver only supports 2
> of the solutions (for a total of 9 supported features and
> capabilities), the driver rating would be 81 (100 * 9 / 11).
> 
> Examples:
> 
>      *cupsDriverRating: 81

> cupsDriverSpeed (ppd-speed 1setOf integer)
> ------------------------------------------
> 
>      *cupsDriverSpeed: "text-msec graphics-msec photo-msec"
> 
> This attribute provides the time required, in milliseconds, to print
> the sample text, graphics, and photo pages on the printer in the
> highest quality (color) printing mode supported by the driver.

I suggest not to mix-up the different use-cases into one
attribute but to keep them seperated and have seperated 
attributes for the different use-cases so that a printer setup
tool can focus on one particular use-case.

I suggest to provide translatable texts for each attribute
in the PPD so that a printer setup tool can show meaningful
info to the user in the user's own language.

See my other mail about probabilities and weights under
the mail subject 'Why not "recommend" PPDs in the NickName?'


I think we don't have the knowledge to provide good values
for this attribute because we don't have such perfect
knowledge about device capabilities and driver capabilities.

Additionally this attribute seems to become terrible
complicated for devices which can be extended e.g.
by duplex units, additinal paper trays, ...

For example a generic PCL5e driver would have to have
high rating on a PCL5e device which cannot be extended
but low rating on a PCL5e device which can be extended
so that for the user it looks as if the extendable device
is not well supported but how do we tell it to a user
who uses (or wants to buy) the extendable device
without all the extensions that the device is well supported
by this driver if it is used without all the extensions?

On the other hand: How do we tell a user who uses (or wants
to buy) the extendable device with all the extensions that
the generic PCL5e driver does not support the extensions?

It seems it must be allowed to have an arbitrary number
of keywords which represent how well the support is.
Perhaps my suggestion in my othe mail points into
the right direction because with the probabilities and
weights there can be an arbitrary number of such keywords
for example something like (see my other mail):

*DriverName ljet4/ljet4 (generic PCL5e driver): "ljet4"
*DriverExtension Duplexer/no support for duplex unit: "0.0" 
*DriverExtension Trays/no support for additional trays: "0.0" 
*DriverExtension Puncher/no support for puncher: "0.0"
*DriverExtension Stapler/no support for stapler: "0.0"
*DriverExtension Sorter/no support for sorter: "0.0"
*DriverMaintenance TonerLevel/no support to query toner level: "0.0"
*DriverMaintenance PageCounter/no support to query page counter: "0.0"
....

The fallback for whatever DriverExtension or DriverMaintenance
option keyword is "unsupported" if the keyword does not exist
in the PPD (i.e. the above example is only to provide explicite
info to the user via the translatable texts).


By the way:
It seems we are about to copy the OpenPrinting database
and whatever other existing sources of information
more or less completely into PPDs which I appreciate
very much because I always thought that PPDs should
be THE source of information regarding printer setup
(which includes which model is how well supported).

 
Kind Regards
Johannes Meixner
-- 
SUSE LINUX Products GmbH, Maxfeldstrasse 5      Mail: jsmeix at suse.de
90409 Nuernberg, Germany                    WWW: http://www.suse.de/





More information about the cups mailing list