[cups-devel] [SOLVED] [ipptool] How do I request stapled output?

Michael Sweet msweet at apple.com
Thu Oct 29 19:15:46 PDT 2015


TOT = top of tree, aka "trunk" or "HEAD". The very latest, bleeding edge code... :)

Sent from my iPad

> On Oct 29, 2015, at 6:41 PM, pipitas <pipitas at gmail.com> wrote:
> 
> ------------------------------
> 
>> Subject: Re: [ipptool] How do I request stapled output?
>> 
>> Kurt,
>> 
>>>> On Oct 28, 2015, at 7:39 PM, pipitas <pipitas at gmail.com> wrote:
>>>> ...
>>>> The finishings attribute is an enumeration
>>> 
>>> 
>>> Yes, that's what the print device also replied when I queried it.
>> However,
>>> looking at
>>> https://www.ietf.org/assignments/ipp-registrations/ipp-registrations.xml
>>> and searching for "staple-top-right" on that page, I find two lines,
>>> stating different things (??):
>>> 
>>>  finishing-template staple-top-right name(MAX) | type2 keyword
>> [PWG5100.1]
>>> 
>>> and
>>> 
>>>   finishings 22 staple-top-right 1setOf type2 enum [RFC2911]
>> 
>> The finishing-template member attribute is used with the finishings-col
>> (collection) attribute, which is the replacement attribute for finishings
>> that provides much greater control.
>> 
>> The finishings attribute is an enum attribute (enums are integers with
>> special meanings) that provides the "simple" controls for stapling,
>> punching, etc.
> 
> Ah... I should have referred to the basic IPP documentation first, instead
> of making a wrong assumption about what "enum" means...
> 
> 
>>> ...
>>> I'm confused now. Can you help to un-confuse me again? (Maybe I need to
>>> grokk the difference between "finishings" and "finishing-template" first,
>>> which I haven't yet...)
>> 
>> There are two ways to specify finishing operations.
>> 
>> The first/original way is using the finishings attribute, which is a
>> simple enumeration of different operations: staple (4), punch (5),
>> staple-top-left (20), etc.
>> 
>> The second/new way is using the finishings-col attribute, which is a
>> "collection" attribute.  The finishing-template member attribute in that
>> collection provides the same simple finishing operation names as the
>> finishings attribute, but as a keyword (string) instead of an enum
>> (integer). Additional member attributes allow for control over positions of
>> staples, etc.
> 
> Thanks a lot for taking the time to provide a more detailed explanation.
> 
> 
>>>> - ipptool is mapping the pre-standard vendor enum to its symbolic name
>>>> (cups prefix).
>>> 
>>> What exactly does this remark mean? What do you mean with "pre-standard
>>> vendor enum", what do you mean with "cups prefix"?
>> 
>> Every enum value has a corresponding symbolic name that is not sent over
>> the wire, but is used for readability since remembering integers is not
>> user-friendly.
> 
> I had still remembered that integers or hex values are codifying IPP
> Operations (operations-supported), but wasn't aware any more about this for
> finishings, document-state, job-collection-type, transmission-status  and
> other attributes.
> 
> 
>> Enum (integer) values are assigned; values defined in standards go from 3
>> to 0x3fffffff (2^30 - 1).  Values defined by vendors (i.e. Apple in this
>> case) go from 0x40000000 to 0x7fffffff (2^30 to 2^31-1).  In this case the
>> 'cups-xxx' values were eventually standardized but some printers implement
>> both sets of values for backwards compatibility.
>> 
>> (that's one of the reasons why we prefer finishings-col over finishings:
>> you don't end up with this mess as long as you start with sane names to
>> begin with...)
>> 
>>>> Right now ipptool doesn't map symbolic names in the other direction
>>> 
>>> 
>>> Since I don't get the meaning of your previous remark, I also don't get
>>> this one.
>> 
>> When ipptool displays the value of the finishings-supported attribute, it
>> converts the integer (enum) values to their symbolic (name) counterparts so
>> you can easily see what the values are.  But currently it does not allow
>> you to specify those names as values for the attribute, e.g.:
>> 
>>    ATTR enum finishings staple-top-left
>> 
>> currently does not work but will in the next CUPS release (changes are in
>> TOT now... :)
> 
> Thanks  :-)
> 
> (Even though I don't know what "TOT" means.)
> 
>> ...
>>> Can you please confirm (or negate+help me to correct), that the two ATTR
>>> lines:
>>> 
>>>      GROUP job-attributes-tag
>>>      ATTR keyword sides two-sided-short-edge
>>>      ATTR enum finishings staple-top-right
>>> 
>>> in my *.test file were basically correct?
>> 
>> Basically correct, but you really need to use the value "22" to specify
>> staple-top-right:
>> 
>>    ATTR enum finishings 22
> 
> Ok -- now it worked. As did "ATTR enum finishings 82"   :-)
> 
> 
>> (at least until the next version of CUPS comes out or you build TOT...)
> 
> Again this mysterious "TOT"   :-)
> 
> 
>>> And that the fact they didn't work may be either an ipptool-bug or a bug
>> in
>>> the printer's IPP implementation?
>> 
>> ipptool bug/limitation.
>> 
>> _________________________________________________________
>> Michael Sweet, Senior Printing System Engineer, PWG Chair
> 
> 
> Thanks again,
> Cheers,
> Kurt
> _______________________________________________
> cups-devel mailing list
> cups-devel at cups.org
> https://www.cups.org/mailman/listinfo/cups-devel



More information about the cups-devel mailing list