Subject: [IPP] RFC: pages-per-subset (1setOf integer(1:MAX)) vs. job-pages-per-set (integer(1:MAX))

From: Michael Sweet via ipp <[email-masked]>
Date: Mon, 06 May 2019 14:17:26 -0400

All,

As I've been going through the ippserver code, I've noticed that we apparently have two attributes that do (approximately) the same thing.  "job-pages-per-set" and "pages-per-subset" both allow the Client to tell the Printer how many (input) pages are bundled together in a set for finishing operations.  "job-pages-per-set" is scoped more narrowly for formats that don't support copy generation, while "pages-per-subset" allows a single Job to contain arbitrary groupings of pages.  AFAIK only "job-pages-per-set" has any implementations in the wild and CUPS only supports it over pages-per-subset...

Given the limited use case for both attributes, I would like to propose we deprecate the "pages-per-subset" attribute.

Thoughts?

PWG 5100.1-2017 (IPP Finishings 2.1) defines the "job-pages-per-set" attribute:

5.3 job-pages-per-set (integer(1:MAX))

The RECOMMENDED "job-pages-per-set" Job Template attribute specifies the number of input pages that constitute a set for finishing processes. It is used when the Client generates the copies in the Document content because the Printer does not support the "copies" attribute [RFC8011] for the given Document format. If the Client includes the "job-pages-per-set" Job Template attribute in a Job Creation request:

• The Client SHOULD NOT include the "copies" Job Template attribute, or if included MUST use the value 1; and

• The Printer MUST ignore the value of the "copies-default" Printer Description attribute.

The value of "job-pages-per-set" MUST be evenly divisible with the number of Input Pages since it is being used to demarcate the length of a single copy or Set. See the sections on the "multiple-document-handling" Job Template attribute [RFC8011] for more information on using this attribute with multiple Document Jobs.

For example, if a Client submits a 14 page PWG Raster Format [PWG5102.4] Document for printing that contains two copies of four duplex pages each, the Client might specify a "job- pages-per-set" Job Template attribute with a value of 7, a "sides" attribute with a value of 'two-sided-long-edge', and a "finishings" attribute with a value of 4 (staple) to have the Printer staple two Sets of four sheets. Figure 4 shows a graphical representation of this example.

PWG 5100.13-2012 (IPP Job and Printer Extensions - Set 3) defines the "pages-per-subset" attribute:

5.2.2 pages-per-subset (1setOf integer(1:MAX))

The "pages-per-subset" Job Template attribute partitions one or more Input-Documents into contiguous subsets of Input-Pages. Each subset is defined to be an Output-Document and finishing options such as stapling are applied as if the Client had submitted the document as multiple jobs.

The value of the attribute is a set of one or more integers, where each integer specifies the number of Input-Pages in a subset, and the set is treated as a repeating sequence of integers. Thus, when the attribute contains a single integer, the integer specifies the number of Input-Pages in each subset, as a repeating sequence of the single integer. When the number of integers in this attribute exceeds 1, the first integer specifies the number of Input-Pages in the first subset, the second integer specifies the number of Input-Pages in the second subset and so on. If numbers in this attribute are exhausted before partitioning all of the Input-Pages, the Printer starts at the beginning of the sequence again and continues until all Input-Pages are partitioned.

If the job contains more than one Input-Document, the Input-Pages are treated as a single stream of Input-Pages which are partitioned into contiguous subsets with some subsets possibly belonging to more than one Input-Document. If the number of Input-Pages available for the last subset is less than the number specified by this attribute, the Printer MUST treat the last subset as an Output-Document.

If the “multiple-document-handling” attribute is present, the Printer MUST ignore the "pages-per-subset" attribute if the "multiple-document-handling" attribute has any value other than 'separate-documents-collated-copies' or 'separate-documents-uncollated- copies' and MUST return the "pages-per-subset" attribute in the unsupported attributes group of a Create-Job, Print-Job, Print-URI, or Validate-Job response with the successful- ok-ignored-or-substituted-attributes status code.

Printers that support this attribute MUST also support the "pages-per-subset-supported" Printer attribute (section 5.6.18).

There is no “pages-per-subset-default” attribute because there is no mechanism for a Client to specify that there are no Input-Page subsets except to omit this attribute, which would cause the Printer to use the “pages-per-subset-default” attribute and create the default subsets.

_________________________________________________________
Michael Sweet, Senior Printing System Engineer

_______________________________________________
ipp mailing list
[email-masked]
https://www.pwg.org/mailman/listinfo/ipp