[Foomatic] Re: Progress is slow, but I am making it.

Till Kamppeter till.kamppeter at gmx.net
Fri Jul 30 11:36:45 PDT 2004


Patrick Powell wrote:
> Till,  you are invited to post this to the other newsgroups/users.
> 

Why don´t you post it to foomatic-devel and lsm-printing by yourself 
already? This answer will go onto the lists, too, please "Reply to all" 
when you reply to this mail.

> So I took the ideas I had for 'selecting parts of the PPD file
> based on options' and found that they did not work.
> 

Who didn't participate in the Printing Summit in Bordeaux, we discussed 
an approach of only one PPD file for each printer, but this PPD file 
containing all info and options for all drivers which make the printer 
work, so that the user can choose the driver on a job-by-job basis 
without needing several queues for the same printer. A GUI should then 
be able to only show the options relevant to the chosen driver. 
Adobe-compliance of the PPDs should not be broken to stay interoperable 
and backwards-compatible.

> The idea:
> 
> You have a set of options,  say for drivers:
> 
> *OpenUI Driver/PostScript Driver:  PickOne   (
> *Driver PS1:
> *Driver PS2:
> *CloseUI
> 
> *OpenGroup Driver.PS1
> *...  (options for Driver PS1)
> *CloseGroup Driver
> 
> *OpenGroup Driver.PS1
> *...  (options for Driver PS1)
> *CloseGroup Driver
> 

I think in the second block I have to replace each "PS1" by "PS2". Or not?

> 
> OR:
> 
> *Group PostScriptDrivers
> 
> *OpenUI Driver/PostScript Driver:  PickOne
> *Driver PS1:
> *Driver PS2:
> *CloseUI
> 
> *OpenSubGroup Driver.PS1
> *...  (options for Driver PS1)
> *CloseSubGroup Driver.PS1
> 
> *OpenSubGroup Driver.PS1
> *...  (options for Driver PS1)
> *CloseSubGroup Driver
> 

Also here: Second group for PS2?

> *CloseGroup PostScriptDrivers
> 
> After working with this for a while,  I have found
> the following problems.
> 
> *** Default values ***
> 
> How do you specify the default values for a driver?
> If they are in the *OpenGroup...*CloseGroup section,
> this is fine.  But what if you want to override them?
> You would like to put them at the end.
> 
> Solution
> Allow multiple sections for Groups.
> These are appended to the existing ones:
> 
> 
> *Group PostScriptDrivers
> *SubGroup Driver.PS1
> *DefaultOptionValue: 1
> *CloseSubGroup
> *CloseGroup PostScriptDrivers
> 
> This is 'correct' but now requires whoever is setting the
> options to remember the 'lexical' structure of the entry.
> 

I doubt that this is compatible with the PPD specs.

> *** Conflicting Options ***
> 
> This came up when I tried to allow 'PickMany' for some options.
> 
> If you have a 'subgroup' with a set of options that differs
> from another 'subgroup' options,  what do you do?
> 
> Answer:  you need to make sure that they do not conflict.
>   This goes beyond the option names and value names,
>   but includes the values as well.
> 
> Solution:  Subgroup options (and value names) must not
> conflict with others in the PPD file.
> 
> Comment:  I spent a couple of hours reading the PPD file and
> searching it for rules to resolve these problems.  Apparently
> it was so blindingly obvious that the PPD authors did not think
> it necessary to comment on this.
> 
> Thus:
> 
> If you have an option,  then you can have it defined
> only in one place, or have only one definition 'visible'
> at a time.
> 
> Patrick Powell
> 
> 

I think, one cannot have two options with the same name in one PPD, even 
not in different groups/subgroups. For having two different "PageSize" 
options for PS2 and PS2, one would need to call one "PS1PageSize" and 
the other "PS2PageSize". The PPD file must have an option "PageSize", 
here this will be a (forced) composite option setting both "PS1PageSize" 
and "PS2PageSize", so always the page size for the driver actually used 
is set, and if one switches to the other driver, the chosen page size 
stays the same.

    Till




More information about the Printing-foomatic mailing list