[Printing-architecture] [Gimp-print-devel] Looking ahead to 5.3
Till Kamppeter
till.kamppeter at gmail.com
Tue Oct 28 08:19:59 PDT 2008
Till Kamppeter wrote:
>
> CUPS has a concept for that and Gutenprint already supports it for head
> cleaning. The command file "printing" concept. You send a file with
> special commands and the mime.types system of CUPS recognizes it as
> command file, directing it into a "commandto..." filter supplied by the
> Gutenprint package. This "commandto..." filter could also save advanced
> options per-user and Gutenprint's "rastertogutenprint" filter could read
> them according to the user name of the sending user. A certain command
> in a command file could also send back the current configuration, so
> that the user can see his settings.
>
> As CUPS filters are all run by the "lp" user, all settings are stored in
> a file (system) with read/write access by "lp".
>
> The command files do not need to be hand-written, they can be created by
> the advanced settings GUI of Gutenprint and/or by the GIMP plug-in. They
> can also be of arbitrary length, for example with an embedded ICC profile.
>
> Disadvantage of the concept is that users cannot configure while the
> printer is printing (if one does not create an extra queue only for
> configuring, but this would look ugly in the printing dialogs of
> applications).
>
> Till
>
This approach would be a concept where user settings are saved on the
print server, So one user (identified by his user name) can use the
settings from several clients.
The options and quick preset buttons in the Common Printing Dialog
cannot be influenced by the user's settings, They depend solely on the
PPD file and each print queue has only one PPD which does not change
depending on the requesting user.
To let one and the same user save several settings, he would need to
have a fixed amount of "slots" on the server and the PPD should contain
an options to select one of the "slots". There can be special quick
preset buttons for that or it can simply be an option which appears
somewhere in the dialog.
Another concept would be the following:
Let us assume that CUPS can take options with arbitrary string length
(Mike, is this correct?). Then we could send an arbitrary file containg,
option settings, ICC profiles, job ticket, ... as argument of an option.
Only condition is that the expression is ASCII without spaces, but we
can UU-encode binary files.
The Gutenprint driver (rastertogutenprint) could accept a string option
named "FineTuning" which takes the configuration file which the user's
fine adjustment GUI for Gutenprint generates as one long string.
rastertogutenprint reads the option from the fifth command line argument.
So the user sets a lot of fine adjustments, and also selects an ICC
profile with Gutenprint's advanced settings GUI. The GUI puts the
settings into an ASCII representation and saves this representation in
~/.cups/lpoptions as a huge line like:
Dest epson FineTuning=blablabla...
Then CUPS sends this string with every job to the server and
rastertogutenprint parses these settings and uses them.
The FineTuning option will not be mentioned in the PPD files, so that it
does not appear in the printing dialogs.
With this approach there does not need to be saved any user data on the
server, the user can tune and save settings whenever he wants, also
while the printer printer is printing. The user can also save any number
of settings using CUPS' concept of printer instances.
Disadvantage is that all configuration info is in the user's home
directory on the client. If he accesses with several clients, the
clients do not provide necessarily the same settings. Also the length of
the string which can be passed with one option can be limited, but here
pne could perhaps let rastertogutenprint accept more than one "hidden"
option.
WDYT? Which of the two approaches should we use? The server-centralized
way controlled by the user's client GUI "printing" command files or the
client-based solution where the GUI saves the options as personal
settings and they get submitted with every print job?
Till
More information about the Printing-architecture
mailing list