October 31, 2003
Candidate Standard 5100.6 
obsoletes 5100.4-2001

The Printer Working Group (PWG)
Standard for The Internet Printing Protocol (IPP):
Page Overrides 

Abstract: This IPP specification extends the IPP Model and Semantics [rfc2911] object model by relaxing the restriction that each attribute value is the same for all pages within a Document. For example, with this extension, page 1 of a job could have a different media than the other pages in the job.

This extension supports page Overrides by adding a new Job Template attribute: “overrides”. Each ‘collection’ value contains attributes that identify the attributes to Override and their associated values as well as the range of pages for the Override.  The range of pages is specified by the “document-copies” attribute and the “pages” attribute to allow Overrides of pages in specific copies of the document.

This specification obsoletes 5100.4-2001, “Override Attributes for Documents and Pages”.  5100.4-2001 had a “Trial Use” status.

October 31, 2003
Candidate Standard 5100.6

The Printer Working Group (PWG)
Standard for
Internet Printing Protocol (IPP):
Page Overrides
This version of the PWG Proposed Standard is available electronically at:
ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.6.pdf, .doc, .rtf
This document is an IEEE-ISTO PWG Candidate Standard.   For a definition of a "PWG Candidate Standard" and its transition to a "PWG Standard", see:  ftp://ftp.pwg.org/pub/pwg/general/pwg-process.pdf.  

Copyright (C) 2003, IEEE ISTO. All rights reserved. 
This document may be copied and furnished to others, and derivative works that comment on, or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice, this paragraph and the title of the Document as referenced below are included on all such copies and derivative works.  However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the IEEE-ISTO and the Printer Working Group, a program of the IEEE-ISTO. 
Title:  The Printer Working Group Standard for the Internet Printing Protocol (IPP): Page Overrides 
The IEEE-ISTO and the Printer Working Group DISCLAIM ANY AND ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED INCLUDING (WITHOUT LIMITATION) ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 
The Printer Working Group, a program of the IEEE-ISTO, reserves the right to make changes to the document without further notice.  The document may be updated, replaced or made obsolete by other documents at any time. 
The IEEE-ISTO takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. 
The IEEE-ISTO invites any interested party to bring to its attention any copyrights, patents, or patent applications, or other proprietary rights which may cover technology that may be required to implement the contents of this document. The IEEE-ISTO and its programs shall not be responsible for identifying patents for which a license may be required by a document and/or IEEE-ISTO Industry Group Standard or for conducting inquiries into the legal validity or scope of those patents that are brought to its attention. Inquiries may be submitted to the IEEE-ISTO by e-mail at: 
ieee-isto@ieee.org 
The Printer Working Group acknowledges that the IEEE-ISTO (acting itself or through its designees) is, and shall at all times, be the sole entity that may authorize the use of certification marks, trademarks, or other special designations to indicate compliance with these materials. 
Use of this document is wholly voluntary.  The existence of this document does not imply that there are no other ways to produce, test, measure, purchase, market, or provide other goods and services related to its scope. 

About the IEEE-ISTO

The IEEE-ISTO is a not-for-profit corporation offering industry groups an innovative and flexible operational forum and support services.  The IEEE-ISTO provides a forum not only to develop standards, but also to facilitate activities that support the implementation and acceptance of standards in the marketplace.  The organization is affiliated with the IEEE (http://www.ieee.org/) and the IEEE Standards Association (http://standards.ieee.org/).

For additional information regarding the IEEE-ISTO and its industry programs visit http://www.ieee-isto.org.

About the IEEE-ISTO PWG
The Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization (ISTO) with member organizations including printer manufacturers, print server developers, operating system providers, network operating systems providers, network connectivity vendors, and print management application developers.  The group is chartered to make printers and the applications and operating systems supporting them work together better.  All references to the PWG in this document implicitly mean “The Printer Working Group, a Program of the IEEE ISTO.” In order to meet this objective, the PWG will document the results of their work as open standards that define print related protocols, interfaces, procedures and conventions. Printer manufacturers and vendors of printer related software will benefit from the interoperability provided by voluntary conformance to these standards. 
In general, a PWG standard is a specification that is stable, well understood, and is technically competent, has multiple, independent and interoperable implementations with substantial operational experience, and enjoys significant public support. 
For additional information regarding the Printer Working Group visit:  http://www.pwg.org

Contact information:
IPP Web Page:  http://www.pwg.org/ipp/ 
IPP Mailing List:  ipp@pwg.org 
To subscribe to the ipp mailing list, send the following email:
1) send it to majordomo@pwg.org 
2) leave the subject line blank
3) put the following two lines in the message body:
subscribe ipp
end
Implementers of this specification are encouraged to join the IPP Mailing List in order to participate in any discussions of clarifications or review of registration proposals for additional names.  Requests for additional extensions, for inclusion in this specification, should be sent to the IPP Mailing list for consideration.  In order to reduce spam the mailing list rejects mail from non-subscribers, so you must subscribe to the mailing list in order to send a question or comment to the mailing list.

Table of Contents
1	Introduction
2	Terminology
2.1	Conformance Terminology
2.2	Other Terminology
2.2.1	Cell
2.2.2	Finished Page
2.2.3	Finished-Page Image
2.2.4	Finished-Page-Image Cell
2.2.5	Impression
2.2.6	Job Creation operation
2.2.7	Overrides
2.2.8	Page
2.2.9	PDL Page
2.2.10	Sheet
3	Overview
3.1	Numbering of Components
4	New Job Template Attributes
4.1	overrides (1setOf  collection)
4.1.1	pages (1setOf rangeOfInteger(1:MAX))
4.1.2	document-numbers (1setOf rangeOfInteger (1:MAX))
4.1.3	document-copies (1setOf rangeOfInteger (1:MAX))
4.1.4	Overriding Job Template attributes
4.1.5	Scope of Job Template Attribute in an Override
4.1.6	Rationale for not having a “overrides-default” attribute
4.1.7	overrides-supported (1setOf  type2 keyword)
5	New Job Description Attributes
5.1	overrides-actual (1setOf collection)
6	Examples
6.1	First Page of Single Document is Letterhead
6.1.1	Request
6.2	First Page of Several Documents is Blue
6.2.1	Request
7	Conformance Requirements
7.1	Printer conformance requirements
7.2	Client conformance requirements
8	IANA Considerations
8.1	Attribute Registration
9	Internationalization Considerations
10	Security Considerations
11	Normative References
12	Informative References
13	Author's Addresses
Appendix 1:  Changes from IEEE ISTO 5100.4-2001

Table of Tables
Table 1 "overrides' member attributes
Table 2 Scope definitions
Table 3 Job Template Attribute Override Scope

1	Introduction
The Internet Printing Protocol (IPP) is an application level protocol for distributed printing using Internet tools and technologies. IPP version 1.1 (IPP/1.1) requires that each attribute value be the same for all pages within a document within a job. This document defines OPTIONAL extensions to the IPP/1.1 model which relax this restriction and allow pages to have attributes that are Overrides. For example, with this extension, page 1 of a Document could have a different media or different value of “sides” from the other pages in the document.  Another example is that the 1st copy of the Document could be printed single-sided on transparency and the remaining copies printed 4-up two-sided and stapled.  Page Overrides always apply to pages within a document without regard to the “multiple-documents-handling” attribute.  
This extension supports page Overrides by adding a new Job Template attribute: “overrides” (1setOf collection).   Each ‘collection’ value for “overrides” : 
•	A member attribute that identifies the overridden pages, namely “pages”. 
•	A member attribute that identifies the documents containing the overridden pages, namely  “document-numbers”.   This attribute MUST be supplied if the Override is specified as a Job Template attribute and the Overrides apply only to specific Documents.  If this member attribute is not supplied, the Override applies to all Documents in the Job.  
•	A member attribute that identifies the document copies of the specified documents, namely “document-copies”.  If this member attribute is absent, the Overrides apply to all document copies.
•	One or more Job Template attributes that are Overrides for the identified pages, e.g. “sides” or “media”.
See sections 4.1 and 7 for the conformance requirements for clients and Printers. 
This specification is a proposal for an extension to IPP/1.0 and IPP/1.1.  This specification when approved as a Candidate Standard will obsolete “Override Attributes for Documents and Pages” specification [PWG5100.4-2001].  This specification provides Overrides at the page level.  The “overrides” Job Template attribute defined in this specification obsoletes the ”page-overrides” Job Template attribute in [PWG5100.4-2001].   Other specifications outside the scope of this specification provide the remaining features from [PWG5100.4-2001] such as “document-overrides”, “pages-per-subset”, and “job-warnings-count”.  See Appendix 1:  Changes from IEEE ISTO 5100.4-2001 for details.

2	Terminology
This section defines the following additional terms that are used throughout this document:
2.1	Conformance Terminology
Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, MAY, and OPTIONAL, have special meaning relating to conformance as defined in RFC 2119 [rfc2119].  If an implementation supports the extension defined in this document, then these terms apply; otherwise, they do not.  These terms define conformance to this document (and [rfc2911]) only; they do not affect conformance to other documents, unless explicitly stated otherwise.  For example, the term REQUIRED in this document means “REQUIRED if this OPTIONAL Override  specification is implemented”.
The term CONDITIONALLY REQUIRED means that the Printer MUST support the feature, if the specified condition is true.  The term CMUST means MUST if the specified “condition” is true.
2.2	Other Terminology
This document uses the same terminology as [rfc2911], such as “client”, “Printer”, “attribute”, “attribute value”, “keyword”, “Job Template attribute”, “Operation attribute”, “operation”, “request”, “response”, and “support” with the same meaning.  In addition, the following terms are defined for use in this document:
2.2.1	Cell
The term "Cell"  used throughout this document is a synonym for Finished-Page-Image Cell.  
2.2.2	Finished Page
One side of a sheet in a Finished Document, i.e., one side of a sheet as perceived by a person
after any cutting, folding, and/or booklet making. The lay term is 'page'.
2.2.3	Finished-Page Image
The single image on a Finished Page, i.e. all the marks imaged on a Finished Page.
2.2.4	Finished-Page-Image Cell
The region on the surface (i.e. side) of a sheet where the Finished-Page Image is
Placed . When imposition is not applied, the Finished-Page-Image Cell coincides with the entire surface of
one side of the sheet. When imposition is applied, a) the sheet is partitioned into multiple non-overlapping
Finished-Page-Image Cells, typically in a rectangular grid, and b) the area near the edges of the sheet may
not belong to any Finished-Page-Image Cell.[PWG5100.3]
2.2.5	Impression
An "impression" is the image (possibly many PDL pages in different configurations) imposed onto a single side of a media sheet.  This definition is a clarification of the definition for impression in [rfc2911].
2.2.6	Job Creation operation
Operations that create Job objects, specifically: Print-Job, Print-URI, and Create-Job as defined in [rfc2911].
2.2.7	Overrides
In IPP/1.1, each attribute value is the same for the entire Job.  When an attribute is an “Overrides” attribute, it is different for identified pages.  Pages can be identified within a Document or a specific copy of a Document.
2.2.8	Page 
The term "Page"  used throughout this document is a synonym for PDL page.  
2.2.9	PDL Page
A "PDL Page" is a page according to the definition of pages in the language used to express the document data.   Note: If the PDL contains multiple original source pages  that have been placed on a single page by the client application, then the PDL page count is one.  On the other hand, if the client requests that multiple PDL Pages are placed on a single side of media, by supplying “number-up” with a value greater than 1, then the PDL page count will be more than one.  [rfc2911] uses the term “print stream page” for PDL Page.
2.2.10	Sheet
A Sheet is the unit of media that a printer puts marks on. It is the most basic unit of output from a printer. A printer may mark on one side or on both sides of a sheet.
3	Overview
In IPP 1.1, all attributes that a client includes with Job Creation operations affect the entire Job in a uniform way. That is, there is no way for one Document in a given Job to be stapled and another drilled. Also, there is no way for the first Sheet of each Document to be on a different media or to have a different value of “sides” from the other Sheets in the Document. In addition, there is no way for one document copy to be printed on paper and another on transparencies. An IPP/1.1 client can specify features, such as finishing, media and sides only at the job level.
The Override Extension defined in this document allows some pages to be affected by attribute values that are Overrides to those specified for the Job as a whole. For example, the first page of a Document has a different media from the rest.
3.1	Numbering of Components
The Override Extension defines a system for numbering of components. 

-	Each Page in a Document is numbered sequentially, starting at 1 for the first Page. If a Job has several Documents, the first Page of each Document has the number 1.  The Page number is unaffected by the “multiple-document-handling” Job Template Attribute. 
-	The Documents are numbered as if the value of “copies” were 1, i.e. if a Document produces multiple copies, each copy of the Document has the same document number. 
-	Each copy of a Document has a number. The first copy of each Document has the number 1, and each subsequent copy has a number that is one higher than the previous copy. 
-	Each Document has a number. The single Document that a client sends with Print-Job or Print-URI and the first Document that a client sends with Send-Document or Send-URI has the number 1. Each subsequent Document that a client sends has a number that is one higher than the previous.  
4	New Job Template Attributes 
The Override Extension adds a new Job Template attribute: “overrides”.   The “overrides” attribute supercedes the “page-overrides” attribute from PWG5100.4
  +===================+======================+======================+
  | Job Template      |Printer: Default Value|  Printer: Supported  |
  |  Attribute        |   Attribute          |   Values Attribute   |
  +===================+======================+======================+
  | overrides         |       none           | overrides-           |
  |                   |                      |   supported          |
  |(1setOf collection)|                      |(1setOf type2 keyword)|
  +===================+======================+======================+

4.1	overrides (1setOf  collection) 
This Job Template attribute contains Job Template attributes that are associated with Pages and that are treated as page Overrides. Such attributes are called “overrides” attributes. The remainder of this section describes features that an implementation MUST support or MAY support if an implementation supports this attribute.

If this attribute is present in a Job, there are Page Overrides. If it is present, the value consists of one or more ‘collection’ values, where each ‘collection’ value identifies one or more Pages and contains one or more Job Template attributes which act as Overrides to the corresponding Job Template attribute(s) for the specified Page(s) in the Job.  Page Overrides are specified by including the “overrides” attribute in the Job Template attributes group in a Print-Job, Print-Uri, Validate-Job, Create-Job or Set-Job-Attributes operation.

The first member attribute of the “overrides” collection MUST be the “pages” attribute.  This identifies the pages to which the Override applies.  The identified pages need not be contiguous. 

If the Override applies only to specific Documents, the next member attribute MUST be the “document-numbers” attribute, which specifies the Documents to which the Override applies.  If this attribute is not supplied, the Override applies to all Documents in the Job.

If the Override applies only to specific copies of the Document, the next member attribute MUST be the “document-copies” attribute,  which specifies the copies of the Document to which the Override applies.  If this attribute is not supplied, the Override applies to all copies of the Document. 
The remaining member attributes in the ‘collection’ value MUST be one or more Job Template attributes that are Overrides for the specified pages. 
If the “pages”, “document-copies”, and “document-numbers”, identify pages that either don’t exist or are within nonexistent Document-Copies or Documents, the Printer MUST silently ignore them.  The Printer MUST apply Overrides to the pages  that do exist . 
If a client supplies a member attribute in some position other than its required position (e.g. “pages” MUST be first), a Printer MUST reject the request with status-code ‘client-error-bad-request’.
For each member attribute in the collection (i.e. “pages”, “document-copies” and “document-numbers”) the client MUST NOT specify values that contain overlapping ranges .  Furthermore the ranges MUST be in ascending order.   If there are multiple “overrides” in the collection the client MUST NOT specify ”overrides” with overlapping documents (i.e. overlapping “document-numbers”).  The “overrides” in the set MUST be in ascending order based on the “document-numbers” member attribute value.  If a request is received by the Printer that does not meet these requirements, the Printer MUST reject the request with status-code ‘client-error-bad-request’.
When a client receives this attribute in a Get-Jobs or Get-Job-Attributes response, the value MUST contain the same ‘collection’ values received in Job-Submission operations, except for those ‘collection’ values the Printer returned in the Unsupported Attributes group. 
To allow the specification of the last page, copy or document, the MAX integer value (2147483647) is used.  To allow the specification of the page, copy or document before the last, a special value of MAX-1(2147483646) is used.  No other special values are defined.
Table 1 "overrides' member attributes
Attribute name	Syntax	In request	Printer Support	
pages	1setOf rangeOfInteger(MAX)	MUST	MUST	
document-numbers	1setOf rangeOfInteger(MAX)	MAY	MUST	
document-copies	1setOf rangeOfInteger(MAX)	MAY	MAY	
Any Job Template attribute		MAY	See section 4.1.4	
The following sections describe each member attribute in the above table.
4.1.1	pages (1setOf rangeOfInteger(1:MAX)) 
This attribute identifies one or more pages by specifying one or more ranges of numbers (see section 3.1 for the rules on associating a number with each page). The “1setOf” allows noncontiguous pages. The Overrides apply to the identified pages within the Documents specified.
If the “page-ranges” attribute is associated with a Document,  the pages identified by this attribute are the same as when “page-ranges” is not present. However, this attribute may identify pages that are deselected for printing by the “page-ranges” attribute. For example, if the value of “page-ranges” is “5:10” and this attribute identifies pages “3:6”, this attribute identifies two pages (3 and 4) that are not printed and two that are (5 and 6).
If a Printer supports the “overrides” attribute, it MUST support this attribute. A client MUST supply this attribute in each ‘collection’ value of the “overrides” attribute and it MUST be the first attribute of each ‘collection’ value. 
4.1.2	document-numbers (1setOf rangeOfInteger (1:MAX))
This attribute identifies one or more Documents by specifying one or more ranges of numbers. The Overrides apply to the pages within the Documents specified. 
A Printer MUST support this attribute. A client MAY supply this attribute in each ‘collection’ value. If supplied, it MUST be the second attribute of each ‘collection’ value. 
4.1.3	document-copies (1setOf rangeOfInteger (1:MAX))
This attribute identifies one or more Document-Copies by specifying one or more ranges of numbers. The Overrides apply to the pages within the identified Documents-Copies within the Documents specified. For example, 10 copies are duplex printed on letter paper with a staple, while one copy is simplex printed on transparencies without a staple. 
If an attribute can affect a Document, it can affect particular Document-Copies. If an attribute can affect Sheets, it can affect Sheets of particular Document-Copies.
A Printer MAY support this attribute. A client MAY supply this attribute in each ‘collection’ value. It MUST be the third attribute of each ‘collection’ value if the client supplies “document-numbers’; otherwise it MUST be second. 
4.1.4	Overriding Job Template attributes
These attributes have the same meaning as in IPP/1.1.  The Printer MUST support only Job Template attributes with a scope of Page, Cell, Impressions, or Sheet (see section 4.1.5).  The Printer MUST list Job Template attributes that the Printer supports for Override in the Printer’s “overrides-supported” attribute.
All overriding Job Template attributes follow the same rules as ordinary Job Template attributes not specified in an Override and interact with “ipp-attribute-fidelity” as specified in [rfc2911].  Therefore if “ipp-attribute-fidelity” is ‘false’, the Printer MUST accept the request (assuming no other problems are found with the request) and any overriding Job Template attributes not supported by the Printer MUST be returned in “unsupported-attributes”.  If “ipp-attribute-fidelity” is ‘true’, then the Printer MUST reject the request and the unsupported Job Template attributes MUST be returned in “unsupported-attributes”.  
The client MUST include at least one attribute to be overridden.  A request with “overrides” that does not have any overriding Job Template attributes MUST be rejected with a ‘client-error-bad-request’ status code.
4.1.5	Scope of Job Template Attribute in an Override
Table 2 defines scopes for Job Template attributes as they apply to Overrides.  The Scope is applicable only when the Job Template attribute is applied as part of an Override.  A Scope is the smallest entity to which a Job Template attribute applies.  The order of Scopes from largest to smallest is: a Job contains one or more Documents that are printed on one or more Sheets that have up to two Impressions containing one or more Cells containing one or more Pages.  For a Printer to support a Job Template attribute in an Override, it MUST support the Job Template at the specified Scope.  Implementations MAY apply the Job Template attribute at a smaller scope (e.g. Page instead of Impression).
Job Template attributes with a scope of Job or Document SHOULD NOT be part of an Override.  They are meaningless in a Override that is specified with a range of Pages in a Document.
Included in the definitions are the rules for handling a change in the Job Template attribute value on Override boundaries.  An Override boundary occurs when two contiguous Pages are in separate Overrides or two contiguous Pages have one Page in an Override and the other is not.  When an Override boundary is reached and the value of the Job Template attribute does not change, the Printer MUST place the next Page on the Impression or Sheet without the transition move dictated in Table 2.   For example: A Document is being printed with “number-up” set to ‘4’ and “sides” set to ‘two-sided-long-edge’ and an Override is set for page 4 with “number-up” of ‘1’.  Pages 1 to 3 will be printed on the first impression (i.e. first side of sheet 1).  The Job Template attribute value change at the transition only affects Impressions (i.e. “number-up” from ‘4’ to ‘1’) so the next Page is printed on a new Impression (i.e. second side of the first sheet).  Since the Job Template attribute affecting Sheets did not change, the fourth Page is not printed on a new Sheet (i.e. first side of the second Sheet).
Table 2 Scope definitions
Override scope	Definition	
Job	Job Template Attributes that operate on whole Jobs, such as “job-priority”, “job-hold-until”, and “multiple-document-handling”, are meaningless as page overrides.  The Client SHOULD NOT supply these attributes in “overrides”.	
Document	Job Template Attributes that operate on whole Documents, such as “copies”, are meaningless as page overrides.  These attributes SHOULD NOT be included in “overrides”. 	
Sheet	Job Template Attributes that operate on whole Sheets, such as “media” and “finishings”, are appropriate as Overrides.  These attributes MAY be included in “overrides”.   When a Sheet attribute changes value at an Override boundary, this forces the Printer to move on to the first side of a new sheet.	
Impression	Job Template Attributes that operate on whole Impressions, such as “imposition-template” or “print-quality”, are appropriate as Overrides.  These attributes MAY be included in “overrides”.  When an Impression attribute changes value at an Override boundary, this forces the Printer to move on to the next Impression—that is, the next side.	
Cell	Job Template Attributes that operate on whole Cell, such as “number-up” or “x-side1-image-shift”, are appropriate as Overrides.  These attributes MAY be included in “overrides”.  When an Cell attribute changes value at an Override boundary, this forces the Printer to move on to the next Cell on the impression.  If impositions are not in effect there is only one Cell per impression.  Therefore a change at an Override boundary would require moving to the next side.	
Page	Job Template Attributes that operate on whole Pages, such as “orientation-requested”, are appropriate as Overrides.  These attributes MAY be included in “overrides”.  Job Template Attributes that operate on Pages do not affect the location of the page image in the Cell (or Impression if impositions are not being applied).  	

Table 3 below shows the Scope for the Job Template attributes.  As indicated above, Job Template attributes with a Scope of Job or Document are not applicable to Overrides.  The “Override Scope” column contains ‘N/A’ for these Job Template attributes.  Table 2 above indicates the appropriate behavior for when the attribute values change on Override boundaries.  
The Job Template attributes “print-quality” and “printer-resolution” have an Override Scope of Impression.  To support these attributes in an “override” the Printers MUST implement them at least to the Override Scope of Impression.  As with any “override” attribute the Printer MAY implement them with the reduced Override Scope of Page.
Table 3 Job Template Attribute Override Scope
Job Template attribute 	Override Scope	Attribute Syntax	Reference	
copies	N/A	integer(1:MAX)	[rfc2911] §4.2.5	
cover-back	N/A	collection	[pwg5100.3] §3.1	
cover-front	N/A	collection	[pwg5100.3] §3.1	
finishings	Sheet	1setOf type2 enum	[rfc2911] §4.2.6	
finishings-col	Sheet	collection	[pwg5100.3] §3.2	
force-front-side	Sheet	1setOf integer(1:MAX)	[pwg5100.3] §3.3	
imposition-template	Impression	type2 keyword | name(MAX)	[pwg5100.3] §3.4	
insert-sheet	N/A	1setOf collection	[pwg5100.3] §3.5	
job-account-id 	N/A	name(MAX)	[pwg5100.3] §3.6	
job-accounting-sheets	N/A	collection	[pwg5100.3] §3.8	
job-accounting-user-id**	N/A	name(MAX)	[pwg5100.3] §3.7	
job-copies	N/A	integer(1:MAX)	[jobx] §5.1. 	
job-cover-back	N/A	collection	[jobx] §5.1. 	
job-cover-front	N/A	collection	[jobx] §5.1. 	
job-error-sheet	N/A	collection	[pwg5100.3] §3.9	
job-finishings	N/A	1setOf type2 enum	[jobx] §5.1. 	
job-finishings-col	N/A	collection	[jobx] §5.1. 	
job-hold-until	N/A	type3 keyword | name(MAX)	[rfc2911] §4.2.2	
job-message-to-operator	N/A	text(MAX)	[pwg5100.3] §3.10	
job-priority	N/A	integer(1:100)	[rfc2911] §4.2.1	
job-sheet-message	N/A	text(MAX)	[pwg5100.3] §3.12	
job-sheets	N/A	type3 keyword | name(MAX)	[rfc2911] §4.2.3	
job-sheets-col	N/A	collection	[pwg5100.3] §3.11	
media	Sheet	type3 keyword | name(MAX)	[rfc2911] §4.2.11	
media-col	Sheet	collection	[pwg5100.3] §3.13	
media-input-tray-check	N/A	type3 keyword | name(MAX)	[pwg5100.3] §3.14	
media-type	Sheet	type3 keyword | name(MAX)	[upnp], [pwg5100.3] §3.13.2	
multiple-document-handling	N/A	type2 keyword	[rfc2911] §4.2.4	
number-up	Cell	integer(1:MAX)	[rfc2911] §4.2.9	
orientation-requested	Page	type2 enum	[rfc2911] §4.2.10	
output-bin	N/A	type2 keyword | name(MAX)	[pwg5100.2] §2.1	
output-device	Sheet	name(MAX)	[jobx] §5.1. 	
page-delivery	N/A	type2 keyword	[pwg5100.3] §3.15	
page-order-received	N/A	type2 keyword	[pwg5100.3] §3.16	
page-ranges	N/A	1setOf rangeOfInteger(1:MAX)	[rfc2911] §4.2.7	
presentation-direction-number-up	Cell	type2 keyword	[pwg5100.3] §3.17	
print-quality	Impression	type2 enum	[rfc2911] §4.2.13	
printer-resolution	Impression	resolution	[rfc2911] §4.2.12	
separator-sheets	N/A	collection	[pwg5100.3] §3.18	
sheet-collate	N/A	type2 keyword	[rfc3381] §3.1	
sides	Sheet	type2 keyword	[rfc2911] §4.2.8	
x-image-position	Cell	type2 keyword	[pwg5100.3] §3.19.2	
x-image-shift	Cell	integer(MIN:MAX)	[pwg5100.3] §3.19.3	
x-side1-image-shift	Cell	integer(MIN:MAX)	[pwg5100.3] §3.19.4	
x-side2-image-shift	Cell	integer(MIN:MAX)	[pwg5100.3] §3.19.5	
y-image-position	Cell	type2 keyword	[pwg5100.3] §3.19.6	
y-image-shift	Cell	integer(MIN:MAX)	[pwg5100.3] §3.19.7	
y-side1-image-shift	Cell	integer(MIN:MAX)	[pwg5100.3] §3.19.8	
y-side2-image-shift	Cell	integer(MIN:MAX)	[pwg5100.3] §3.19.9	
4.1.6	Rationale for not having a “overrides-default” attribute
There is no “overrides-default” attribute because it adds complicated rules for a Printer to implement.  The problems are best illustrated with examples.
If there were an “overrides-default” and it contained a “sides” and “media” Override for the first page, and if a client submitted a Job with no “sides” attribute and with “media” as a Job Template attribute with no Overrides, a possible meaning is that the Printer uses the client’s requested media for the entire Job and the sides specified by the “sides-default” and the “sides” value in “overrides-default”. So in this example, the Printer ignores the “overrides-default” attribute for “media”, but uses it for “sides” because the Printer uses it for an attribute “xxx” only when it uses “xxx-default”. 
4.1.7	overrides-supported (1setOf  type2 keyword)
This attribute specifies the supported values of the “overrides” attribute. A client can use this attribute to determine what Override attributes the Printer supports. 
This attribute contains the name of each attribute that the Printer supports in a ‘collection’ value of the “overrides” attribute.  The Printer MUST support this attribute.  This attribute MUST contain the keywords “pages” and “document-numbers”  because a Printer MUST support these attributes. This attribute MUST contain the keyword “document-copies” if the Printer supports overriding of individual copies of a Document. This attribute MUST also contain the name of each attribute that can be an Override. For example, this attribute contains the keyword “sides” if and only if the Printer supports “sides” in a ‘collection’ value of the “overrides” attribute.
There are no corresponding “document-numbers-supported”, “document-copies-supported”, and “pages-supported” Printer attributes.  However, the supported values for all of the other member attributes are indicated by the corresponding “xxx-supported” Printer attributes which are the same values as for the corresponding “xxx” operation or Job Template attribute.  For example, if “sides” is supported as a member attribute of the “override” collection, then the “sides-supported” Printer attribute indicates the values that are supported both at the job level and as an Override.
5	New Job Description Attributes 
The Override Extension adds a new Job Description attribute.
5.1	overrides-actual (1setOf collection)
This OPTIONAL Job Description attribute specifies the "overridess" attributes that the Printer actually used in producing the job.  The Printer MAY support this attribute even if it does not support the "overrides " Job Template attribute.
6	Examples
This section contains example Overrides. Brackets are used to delimit the beginning and end of each Collection value.
6.1	First Page of Single Document is Letterhead
In the first example, the Printer produces 1 copy of a single Document. It is printed on letter-paper using Print-Job. The first Page of the Document is letterhead paper.

6.1.1	Request
There is one implied Document A.

Print-Job
job template attributes group
media: letter
overrides: {
pages: 1:1
media: letterhead }
end-of-attributes
   Document A 
6.2	First Page of Several Documents is Blue
In the second example, the Printer produces 3 copies of each Document. Each is stapled and printed on letter-paper, two-sided using Create-Job. The first Page of each Document is blue-letter paper and one-sided.

6.2.1	Request
There are two Documents A and B.

Create-Job
	operations attributes group
document-format: application/PostScript					
job template attributes group
*	      multiple-document-handling: separate-documents-collated-copies	
sides: two-sided-long-edge
media: letter
copies: 3						
finishings: stapling					
overrides: {
pages: 1:1
document-numbers: 1: 2147483647
sides: one-sided
media: blue-letter }
end-of-attributes
Send-Document
end-of-attributes
   Document A 
Send-Document
end-of-attributes
   Document B 

7	Conformance Requirements
This specification describes the conformance requirements for Printers and clients overriding attributes withina Job.  This section does not change any of the preceeding normative definitions.  If there is any conflict , the previous definitions apply.
7.1	Printer conformance requirements
In order to conform to this specification, a Printer:
1.	MUST meet the conformance requirements for Printers specified in [rfc2911].
2.	MUST support the component numbering semantics specified in section 3.1 for the components that the Printer supports.
3.	MUST support the Override Scope of Job Template attributes that section 4.1.5 or the definition of any other Job Template attributes REQUIRES a Printer to support.
4.	MUST support the “overrides” Job Template attribute in the Print-Job and Send-Document operations and, if supported, the Print-URI and Send-URI operations, that section 4 REQUIRES a Printer to support.
5.	A conforming Printer MUST handle unsupported attributes correctly. If a Printer receives an “overrides” attribute that contains one or more unsupported members, it MUST return in the Unsupported Attributes group of the response the “overrides” attribute with the unsupported member attributes. The “ipp-attribute-fidelity” attribute determines whether the Printer 
a.	rejects the Job or 
b.	accepts the Job and ignores the unsupported member attributes.

6.	A Printer MUST support the "pages" and "document-numbers" member attributes.
7.	A Printer MAY support the “document-copies” attribute as a member attribute of “overrides”. If a Printer does not support the “document-copies” member attribute and receives it in “overrides”, it treats the “document-copies” attribute as described in the item 5 above. If the Printer accepts the Job, it behaves as if the Overrides applied to all copies of the specified documents or pages, i.e. the way the Printer would behave if it supported “document-copies” and the client didn’t supply it.
7.2	Client conformance requirements
In order to conform to this specification, a client:
1.	MUST meet the conformance requirements for clients specified in [rfc2911].
2.	MUST support the component numbering semantics specified in section 3.1 for the components that the Printer supports.
3.	MUST supply the "override" Job Template attribute that meets the syntactic conformance requirements specified in section 4.1 for what an "override" Job Template MUST include.
4.	MUST support the Override Scope of Job Template attributes that section 4.1.5 or the definition of any other Job Template attributes REQUIRES a Printer to support.
5.	MAY support the “overrides” Job Template attributes in the Print-Job and Send-Document operations and, if supported, the Print-URI and Send-URI operations, that section 4 REQUIRES a Printer to support.
8	IANA Considerations
This section contains the exact information for IANA to add to the IPP Registries according to the procedures defined in RFC 2911 [RFC2911] section 6.
8.1	Attribute Registration
The attributes defined in this document will be published by IANA according to the procedures in RFC 2911 [RFC2911] section 6.2 with the following path:

ftp.isi.edu/iana/assignments/ipp/attributes/ 

The registry entry will contain the following information:

Reference IEEE-ISTO 5100.6:  
ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.6.pdf

Job Template attributes:                            Section:
overrides							4.1
pages							4.1.1
document-numbers					4.1.2
document-copies					4.1.3
overrides-supported					4.1.7

Job Description attributes:                         Section:
overrides							5.1
9	Internationalization Considerations
The IPP extensions defined in this document require the same internationalization considerations as any of the Job Template attributes defined in IPP/1.1 [RFC2911].
10	Security Considerations
The IPP extensions defined in this document require the same security considerations as any of the Job Template attributes defined in IPP/1.1 [RFC2911].
11	Normative References
[RFC2026]  
	Bradner, S., “The Internet Standards Process -- Revision 3”, RFC 2026, October 1996.

[RFC2910]
	Herriot, R., Butler, S., Moore, P., Turner, R. and J. Wenn, “Internet Printing Protocol/1.1: Encoding and Transport”, RFC 2910, September 2000.
[RFC2911]
	Hastings, T., Herriot, R., deBry, R., Isaacson, S. and P. Powell, “Internet Printing Protocol/1.1: Model and Semantics”, RFC 2911, September 2000.
[RFC3380]
 	Hastings, T., Herriot, R., Kugler, C., and H. Lewis, "Internet Printing Protocol (IPP): Job and Printer Set Operations", RFC 3380, September 2002.
  [PWG5100.3]
	Hastings, T., Ocke, K., "Internet Printing Protocol (IPP): Production Printing Attributes – Set1", IEEE-ISTO 5100.3-2001, February 12, 2001, ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.3.pdf.
12	Informative References
[PWG5100.4]
	Herriot, R., Ocke, K., "Internet Printing Protocol (IPP): Override Attributes for Documents and Pages", IEEE-ISTO 5100.4-2001, February 7, 2001, ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.4.pdf.
13	Author's Addresses
Peter Zehler
Xerox Corporation
MS: 0128-30E
800 Phillips Road
Webster, NY 14580-9701

Phone: 585 265-8755
Fax:  585 422-7961
e-mail: PZehler@crt.xerox.com

Robert Herriot
706 Colorado Ave. 
Palo Alto, CA 94303

Phone: 650- 324-4000
e-mail: bob@herriot.com

Kirk Ocke
Xerox Corporation
800 Phillips Road
Webster, NY 14580

Phone: 716-422-4832
e-mail: Kirk.Ocke@usa.xerox.com

Other Participants:
Ron Bergman - Hitachi Printing Solutions	Dan Calle - Digital Paper	
Dennis Carney – IBM	Weihai Chen - Microsoft	
Lee Farrell - Canon Information Systems	Satoshi Fujitani - Ricoh	
Roelof Hamberg – Océ	Tom Hastings - Xerox	
Bob Herriot – Xerox	David Kellerman - Northlake Software	
Carl Kugler – IBM	Harry Lewis - IBM	
Carl-Uno Manros – Xerox	Satoshi Matsushita - Brother	
Ira McDonald - High North Inc.	Paul Moore - Netreon	
Hugo Parra, Novell	Stuart Rowley - Kyocera	
Gail Songer – Netreon	Geoff Soord - Software 2000	
Jerry Thrasher – Lexmark	Shinichi Tsuruyama - Epson	
Atsushi Uchino – Epson	Shigeru Ueda - Canon	
William Wagner - NetSilicon/DPI	Mark Vander Wiele - IBM	
Don Wright – Lexmark	Michael Wu - Heidelberg Digital	
Peter Zehler – Xerox		
Appendix 1:  Changes from IEEE ISTO 5100.4-2001
This specification obsoletes IEEE ISTO 5100.4-2001.  The main features of 5100.4-2001 include Document-Overrides, Page-Overrides, Subset-Finishing, and Job-Warnings.  The changes that this specification has made affect all these features.  Below is a summary of the changes.
1.	Document-Overrides has been removed.  The ability to Override Job Template attributes on a per Document basis is now provided by an explicit Document Object specification that is outside the scope of this specification.  The attribute “document-override” and its member attributes are now obsolete.
2.	Page-Overrides has been simplified and is described in this specification.  Differences include
•	There is no longer any concept of input and output pages, or documents, and the mapping between them.
•	All pages are relative to the Document in which they are contained. Pages within specific copies of of a Document is allowed.
•	Overrides do not contain overlapping “pages”, “document-copies” or “document-numbers” 
•	The ranges of “pages”, “document-copies” and “document-numbers”  are in ascending order.   
•	Multiple “overrides” in a request are specified  in ascending order based on the “document-numbers” member attribute values.
•	Special values are defined to specify the last and next to last Page in a Document.  The special values also apply to  Documents and copies of a Document.
3.	Subset-Finishing has been removed to another specification that is outside the scope of this specification.
4.	Job-Warnings has been removed.  It is now part of a specification on IPP Job Extensions.  The new definition supports the count and “job-state-reasons” for warnings and errors and is outside the scope of this specification