View
0
Download
0
Category
Preview:
Citation preview
®The Printer Working Group
November 21, 2019Working Draft
IPP Driverless Printing Extensions v2.0(NODRIVER)
Status: Interim
Abstract: Printing on new operating systems, distributed computing systems, and mobile devices emphasizes the challenges of generating document data, discovering available Printers, and communicating that document data to a Printer. This specification adds additional attributes and operations to IPP to better support generic, vendor-neutral implementations of printing in these environments.
This is a PWG Working Draft. For a definition of a "PWG Working Draft", see:
https://ftp.pwg.org/pub/pwg/general/pwg-process30.pdf
This specification is available electronically at:
https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext3v20-20191121.docxhttps://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext3v20-20191121.pdfhttps://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext3v20-20191121-rev.docxhttps://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext3v20-20191121-rev.pdf
Copyright © 2012-2019 The Printer Working Group. All rights reserved.
12345678910
11
12
13
14
15
1617181920
21
22
23
2425262728293031
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Copyright © 2012-2019 The Printer Working Group. 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: IPP Driverless Printing Extensions v2.0 (NODRIVER)
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.
Page 2 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
12
32
3334353637383940
41
42434445
464748
4950515253
54555657585960
61626364
65666768
3
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
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 system providers, network connectivity vendors, and print management application developers. The PWG 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.”
To meet this objective, the PWG documents the results of their work as open standards that define print related protocols, interfaces, procedures, and conventions. A PWG standard is a stable, well understood, and technically competent specification that is widely used with multiple independent and interoperable implementations. Printer manufacturers and vendors of printer related software benefit from the interoperability provided by voluntary conformance to these standards.
For additional information regarding the Printer Working Group visit:
http://www.pwg.org
Contact information:
The Printer Working Groupc/o The IEEE Industry Standards and Technology Organization445 Hoes LanePiscataway, NJ 08854USA
Page 3 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
45
69
707172737475
76
77
78
79808182838485
868788899091
92
93
94
9596979899100
6
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Table of Contents1. Introduction.....................................................................................................................112. Terminology....................................................................................................................11
2.1 Conformance Terminology........................................................................................112.2 Printing Terminology.................................................................................................112.3 Protocol Role Terminology........................................................................................122.4 Other Terminology....................................................................................................122.5 Acronyms and Organizations....................................................................................13
3. Requirements.................................................................................................................153.1 Rationale...................................................................................................................153.2 Use Cases................................................................................................................15
3.2.1 Select Printer Using Geo-Location.....................................................................153.2.2 Select Printer with Confirmation.........................................................................163.2.3 Print Using Loaded Media..................................................................................163.2.4 Print a Secure Form...........................................................................................163.2.5 Print with Special Formatting..............................................................................173.2.6 Print to a Service................................................................................................173.2.7 Print a Document with Page Subsets.................................................................173.2.8 Print on a Roll.....................................................................................................173.2.9 Job or Document Processing Failures................................................................173.2.10 Manual Duplex Printing....................................................................................183.2.11 Continuous Printing..........................................................................................183.2.12 Correlation of Multiple Printers.........................................................................183.2.13 Manufacturer-Deployed Print Quality Mode.....................................................183.2.14 Administrator-Deployed Print Quality Mode.....................................................193.2.15 Manufacturer-Deployed Color Transformation Preferences.............................193.2.16 Administrator-Deployed Color Transformation Preference...............................203.2.17 Print Quality Hints to Influence Printer Color Processing.................................20
3.3 Exceptions................................................................................................................203.4 Out of Scope.............................................................................................................213.5 Design Requirements...............................................................................................21
4. IPP Model.......................................................................................................................224.1 Limits.........................................................................................................................224.2 Filtering.....................................................................................................................224.3 Constraints and "preferred-attributes".......................................................................234.4 Printer Resources.....................................................................................................234.5 ICC Color Management and Color Mode Previews..................................................244.6 Localization...............................................................................................................244.7 Device Information....................................................................................................24
5. New Operations..............................................................................................................255.1 Identify-Printer...........................................................................................................25
5.1.1 Identify-Printer Request......................................................................................255.1.2 Identify-Printer Response...................................................................................26
5.2 Validate-Document...................................................................................................265.2.1 Validate-Document Request...............................................................................27
Page 4 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
78
101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
9
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
5.2.2 Validate-Document Response............................................................................276. New Attributes................................................................................................................28
6.1 Operation Attributes..................................................................................................286.1.1 document-metadata (1setOf octetString(MAX)).................................................286.1.2 document-password (octetString(1023))............................................................296.1.3 first-index (integer(1:MAX))................................................................................306.1.4 identify-actions (1setOf type2 keyword).............................................................306.1.5 preferred-attributes (collection)...........................................................................306.1.6 requesting-user-uri (uri)......................................................................................31
6.2 Job and Document Template Attributes....................................................................316.2.1 eliminate-margins (type2 keyword).....................................................................316.2.2 job-error-action (type2 keyword).........................................................................326.2.3 media-overprint (integer)....................................................................................326.2.4 media-overprint-type (type2 keyword)................................................................336.2.5 print-color-mode (type2 keyword).......................................................................336.2.6 print-rendering-intent (type2 keyword)................................................................34
6.3 Job Description Attributes.........................................................................................346.3.1 document-metadata (1setOf octetString(MAX)).................................................34
6.4 Job Status Attributes.................................................................................................356.4.1 job-originating-user-uri (uri)................................................................................356.4.2 job-pages (integer(0:MAX))................................................................................356.4.3 job-pages-completed (integer(0:MAX))..............................................................356.4.4 job-pages-completed-current-copy (integer(0:MAX)).........................................356.4.5 job-uuid (uri(45)).................................................................................................36
6.5 Subscription Status Attributes...................................................................................366.5.1 notify-subscription-uuid (uri(45)).........................................................................366.5.2 notify-subscriber-user-uri (uri)............................................................................36
6.6 Document Description Attributes...............................................................................376.6.1 document-metadata (1setOf octetString(MAX)).................................................376.6.2 pages (integer(0:MAX))......................................................................................37
6.7 Document Status Attributes......................................................................................376.7.1 document-uuid (uri(45))......................................................................................386.7.2 pages-completed (integer(0:MAX))....................................................................38
6.8 Printer Description Attributes....................................................................................386.8.1 document-password-supported (integer(0:1023))..............................................396.8.2 eliminate-margins-supported (1setOf type2 keyword)........................................396.8.3 identify-actions-default (1setOf type2 keyword).................................................396.8.4 identify-actions-supported (1setOf type2 keyword)............................................406.8.5 ipp-features-supported (1setOf type2 keyword).................................................406.8.6 job-constraints-supported (1setOf collection).....................................................406.8.7 job-error-action-default (type2 keyword).............................................................416.8.8 job-error-action-supported (1setOf type2 keyword)............................................426.8.9 job-resolvers-supported (1setOf collection)........................................................426.8.10 media-overprint-supported (rangeOfInteger(0:MAX)).......................................426.8.11 media-overprint-type-supported (1setOf type2 keyword).................................426.8.12 multiple-operation-time-out-action (type2 keyword)..........................................43
Page 5 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1011146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
12
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.8.13 preferred-attributes-supported (boolean)..........................................................436.8.14 print-color-mode-default (type2 keyword).........................................................436.8.15 print-color-mode-supported (1setOf type2 keyword)........................................436.8.16 print-color-mode-icc-profiles (1setOf collection)...............................................446.8.17 print-quality-hints-supported (1setOf keyword).................................................446.8.18 print-rendering-intent-default (type2 keyword)..................................................466.8.19 print-rendering-intent-supported (1setOf type2 keyword).................................466.8.20 printer-charge-info (text(MAX)).........................................................................466.8.21 printer-charge-info-uri (uri)................................................................................466.8.22 printer-geo-location (uri | unknown)..................................................................466.8.23 printer-get-attributes-supported (1setOf keyword)............................................466.8.24 printer-icc-profiles (1setOf collection)...............................................................476.8.25 printer-icons (1setOf uri)...................................................................................476.8.26 printer-input-tray (1setOf octetString(MAX)).....................................................476.8.27 printer-mandatory-job-attributes (1setOf keyword)...........................................516.8.28 printer-organization (1setOf text(MAX))............................................................516.8.29 printer-organizational-unit (1setOf text(MAX))..................................................516.8.30 printer-output-tray (1setOf octetString(MAX))...................................................516.8.31 printer-strings-languages-supported (1setOf naturalLanguage).......................546.8.32 printer-strings-uri (uri | no-value)......................................................................546.8.33 requesting-user-uri-supported (boolean)..........................................................55
6.9 Printer Status Attributes............................................................................................556.9.1 device-service-count (integer(1:MAX))...............................................................556.9.2 device-uuid (uri(45))...........................................................................................566.9.3 printer-config-change-date-time (dateTime).......................................................566.9.4 printer-config-change-time (integer(1:MAX))......................................................566.9.5 printer-supply (1setOf octetString(MAX))...........................................................566.9.6 printer-supply-description (1setOf text(MAX))....................................................606.9.7 printer-supply-info-uri (uri)..................................................................................616.9.8 printer-uuid (uri(45))...........................................................................................62
7. Additional Semantics for Existing Operations.................................................................627.1 All Operations: "requesting-user-uri".........................................................................627.2 Get-Printer-Attributes Operation: "first-index" and "limit"..........................................627.3 Get-Subscriptions Operation: "first-index" and "limit"................................................627.4 Get-Jobs Operation: "first-index" and "limit"..............................................................637.5 Get-Documents Operation: "first-index" and "limit"...................................................637.6 Print-Job, Print-URI, Send-Document, and Send-URI Operations: "document-metadata"........................................................................................................................637.7 Print-Job, Print-URI, Send-Document, and Send-URI Operations: "document-password".......................................................................................................................637.8 Validate-Job Operation: "document-password"........................................................647.9 Validate-Job Operation: "preferred-attributes"..........................................................64
8. Additional Values and Semantics for Existing Attributes................................................648.1 document-state-reasons (1setOf type2 keyword) and job-state-reasons (1setOf type2 keyword)................................................................................................................648.2 finishings (1setOf type2 enum).................................................................................65
Page 6 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1314192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
15
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
8.3 media-source (type2 keyword | name(MAX))............................................................658.4 orientation-requested (type2 enum)..........................................................................668.5 print-content-optimize (type2 keyword).....................................................................668.6 print-quality (type2 enum).........................................................................................668.7 printer-state-reasons (1setOf type2 keyword)...........................................................678.8 uri-authentication-supported (1setOf type2 keyword)...............................................68
9. Status Codes..................................................................................................................689.1 client-error-document-password-error (0x418).........................................................689.2 client-error-document-permission-error (0x419).......................................................689.3 client-error-document-security-error (0x41A)............................................................689.4 client-error-document-unprintable-error (0x41B).......................................................68
10. Localization of Attributes and Values............................................................................6910.1 Message Catalog File Format.................................................................................6910.2 Message Catalog Help Resources..........................................................................7010.3 Message Catalog Example.....................................................................................7010.4 Message Catalog ABNF..........................................................................................72
11. Relationship of Impressions, Pages, and Sheets.........................................................7311.1 Examples for Impressions, Pages, and Sheets......................................................73
11.1.1 Single Document Simplex Job Without Copies................................................7311.1.2 Single Document Duplex Job Without Copies..................................................7311.1.3 Two Document Duplex Job With Copies, Number-Up, and Page-Ranges.......73
12. Printer Resource Best Practices...................................................................................7613. Obsolete Attributes.......................................................................................................7714. Obsolete Values...........................................................................................................7715. Conformance Requirements.........................................................................................77
15.1 Printer Conformance Requirements........................................................................7715.2 Client Conformance Requirements.........................................................................7815.3 HTTP Recommendations........................................................................................78
16. Internationalization Considerations...............................................................................7817. Security Considerations................................................................................................79
17.1 Security Considerations for the "document-password" Attribute.............................7918. IANA Considerations....................................................................................................80
18.1 MIME Media Type Registration...............................................................................8018.2 Attribute Registrations.............................................................................................8118.3 Type2 keyword Registrations..................................................................................8318.4 Type2 enum Registrations......................................................................................8518.5 Operation Registrations..........................................................................................8518.6 Status Code Registrations......................................................................................86
19. Overview of Changes...................................................................................................8619.1 IPP Driverless Printing Extensions v.2.0.................................................................86
20. References...................................................................................................................8720.1 Normative References............................................................................................8720.2 Informative References...........................................................................................91
21. Authors' Addresses.......................................................................................................9222. Change History.............................................................................................................93
22.1 November 21, 2019................................................................................................93
Page 7 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1617238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
18
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
22.2 November 20, 2019................................................................................................9322.3 October 3, 2019......................................................................................................9322.4 July 24, 2019...........................................................................................................9422.5 July 10, 2019...........................................................................................................96
List of FiguresFigure 1 - ABNF for "document-metadata" Values.............................................................29Figure 2 - Verbose "job-constraints-supported" and "job-resolvers-supported" Example...40Figure 3 - Concise "job-constraints-supported" and "job-resolvers-supported" Example.. .41Figure 4 - "print-quality-hints-supported" example..............................................................45Figure 5 - ABNF for "printer-input-tray" Values...................................................................49Figure 6 - ABNF for "printer-output-tray" Values................................................................52Figure 7 - ABNF for "printer-supply" Values.......................................................................57Figure 8 - Example values for "printer-supply" Printer Status attribute..............................60Figure 9 - Example of "printer-supply-description".............................................................61Figure 10 - ABNF for the "text/strings" MIME Media Type..................................................72Figure 11 - Two Document Duplex Job With Copies, Number-Up, and Page-Ranges......75
List of TablesTable 1 - New Operation Attributes....................................................................................28Table 2 - "identify-actions" Keyword Values.......................................................................30Table 3 - New Job and Document Template Attributes......................................................31Table 4 - "eliminate-margins" Keyword Values...................................................................31Table 5 - "job-error-action" Keyword Values.......................................................................32Table 6 - "media-overprint-type" Keyword Values..............................................................33Table 7 - "print-color-mode" Keyword Values.....................................................................33Table 8 - "print-rendering-intent" Keyword Values..............................................................34Table 9 - New Job Status Attributes...................................................................................35Table 10 - New Job Status Attributes.................................................................................36Table 11 - New Document Description Attributes...............................................................37Table 12 - New Document Status Attributes.......................................................................37Table 13 - New Printer Description Attributes.....................................................................38Table 14 - "ipp-features-supported" Keyword Values.........................................................40Table 15 - "multiple-document-time-out-action" Keyword Values.......................................43Table 16: "print-quality-hints-supported" Attribute Syntax Possible Control Mappings.......45Table 17 - Keywords for "printer-input-tray"........................................................................48Table 18 - Keywords for "printer-output-tray".....................................................................52Table 19 - New Printer Status Attributes............................................................................55Table 20 - Keywords for "printer-supply"............................................................................57Table 21 - Standard Colorant Names for "printer-supply"...................................................59Table 22 - New "document-state-reasons" and "job-state-reasons" Keyword Values........64Table 23 - New "finishings" Enum Values..........................................................................65Table 24 - New "printer-state-reasons" Keyword Values....................................................67
Page 8 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1920284285286287288289
290291292293294295296297298299300301
302303
304305306307308309310311312313314315316317318319320321322323324325326327328
21
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Table 25 - Job Template Attributes That Affect Impressions and Sheets...........................76Table 26 - Obsolete Attributes............................................................................................77Table 27 - Obsolete Values................................................................................................77
Page 9 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2223329330331332
24
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
1. IntroductionPrinting on new operating systems, distributed computing systems, and mobile devices emphasizes the challenges of generating document data, discovering available Printers, and communicating that document data to a Printer. This specification adds additional attributes and operations to IPP/1.1 [STD92] and IPP/2.0, IPP/2.1 and IPP/2.2 [PWG5100.12] to better support generic, vendor-neutral implementations of printing in these environments.
This specification extends the IPP Model and Semantics [STD92] by defining:
1. A general method for limits and filtering for objects and attributes;2. Constraint handling mechanisms for clients and printers;3. ICC-based color management, and4. Localization of attribute names and values.
2. Terminology
2.1 Conformance Terminology
Capitalized terms, such as MUST, MUST NOT, RECOMMENDED, REQUIRED, SHOULD, SHOULD NOT, MAY, and OPTIONAL, have special meaning relating to conformance as defined in Key words for use in RFCs to Indicate Requirement Levels [BCP14]. The term CONDITIONALLY REQUIRED is additionally defined for a conformance requirement that applies when a specified condition is true.
The term DEPRECATED is used for previously defined and approved protocol elements that SHOULD NOT be used or implemented. The term OBSOLETE is used for previously defined and approved protocol elements that MUST NOT be used or implemented.
2.2 Printing Terminology
Normative definitions and semantics of printing terms are imported from the Internet Printing Protocol/1.1 [STD92].
Document: An object created and managed by a Printer that contains the description, processing, and status information. A Document object may have attached data and is bound to a single Job.
Job: An object created and managed by a Printer that contains description, processing, and status information. The Job also contains zero or more Document objects.
Page 10 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2526
333
334335336337338339
340
341342343344
345
346
347
348349350351352
353354355356
357
358359
360361362
363364
27
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Logical Device: a print server, software service, or gateway that processes jobs and either forwards or stores the processed job or uses one or more Physical Devices to render output.
Output Device: a single Logical or Physical Device
Physical Device: a hardware implementation of a endpoint device, e.g., a marking engine, a fax modem, etc.
2.3 Protocol Role Terminology
The following protocol roles are defined to specify unambiguous conformance requirements:
Client: Initiator of outgoing connections and sender of outgoing operation requests (Hypertext Transfer Protocol -- HTTP/1.1 [RFC7230] User Agent).
Printer: Listener for incoming connections and receiver of incoming operation requests (Hypertext Transfer Protocol -- HTTP/1.1 [RFC7230] Server) that represents one or more Physical Devices or a Logical Device.
2.4 Other Terminology
Black Point Compensation: The mapping of the darkest color in a source Color Space to the darkest color in a destination Color Space, generally to improve the reproduction of dark colors and shadows.
Color Space: The interpretation of color in a document, for example “RGB”, “Grayscale”, “CMYK”, and so forth.
Content: Document data such as photos, web pages, email messages, reports and presentations, and books or other longer documents.
Gamut: The range of colors that can be reproduced by a Printer or Color Space.
Image Box: The "content area" within a digital document.
Input-Document: The entire sequence of bytes transmitted as the Document Content in the Print-Job and Send-Document operations or referenced by the "document-uri" operation attribute in the Print-URI and Send-URI operations. This sequence of bytes consists of one or more Input-Pages.
Input-Page: A sequence of bytes that describe how to mark a single Output-Page. IPP 1.1 [STD92] uses the term “print-stream-pages” to refer to both Input-Pages and Output-Pages. There is a one to one relationship between Input-Pages and Output-Pages and they are in the same order. Both Input-Pages and Output-Pages are numbered sequentially starting from 1 at the beginning of each Input-Document or
Page 11 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2829365366367
368
369370
371
372373
374375
376377378
379
380381382
383384
385386
387
388
389390391392
393394395396397
30
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Output-Document, respectively. When the first Input-Page of an Input-Document coincides with the first Output-Page of an Output-Document, the numbering of Input-Pages and Output-Pages coincides; otherwise it doesn’t.
ith: Referring to a specific 1setOf value - the first value, the second value, and so forth.
Kerberized Printing: Authenticated printing based on SPNEGO-based Kerberos and NTLM HTTP Authentication in Microsoft Windows [RFC4559], Transport Layer Security/1.3 [RFC8446], and Upgrading to TLS Within HTTP/1.1 [RFC2817].
Output-Document: A set of one or more Sheets which either are permanently bound into a single unit, e.g., with a staple, or are intended to be treated by an end-user as a single unit, e.g., for a loose-leaf binder. If an Output-Document is bound, it is uniformly bound; if it is not bound, no subset of sheets within it are bound. The Output-Pages that comprise an Output-Document may come from, all the Input-Pages of an Input-Document, a proper subset of the Input-Pages of the Input-Document, or all the Input-Pages of several Input-Documents. An Output-Document is not a set of sheets that are bound temporarily for shipping, e.g., with banding.
Output-Page: The set of all markings that the author intended to be placed on one side of a Sheet, including, but not limited to, text, drawings, images, footers and headers.
Paid Imaging Services: Printing, facsimile, and scanning performed for a fee. The means of collecting payment is outside the scope of this specification.
Printer Resident: Hosted by the same host as the Printer. Used especially in the context of resources, which are considered Printer Resident if they are provided by the same network host that is hosting the Printer.
Secure Transport: Encryption of the HTTP connection using Transport Layer Security [RFC8446]. The security session may be negotiated at the initiation of the connection ("HTTPS") or by Upgrading to TLS Within HTTP/1.1 [RFC2817].
Sheet: 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.
2.5 Acronyms and Organizations
IANA: Internet Assigned Numbers Authority, https://www.iana.org/
ICC: International Color Consortium, https://www.color.org
IETF: Internet Engineering Task Force, https://www.ietf.org/
ISO: International Organization for Standardization, https://www.iso.org/
PWG: Printer Working Group, https://www.pwg.org/
Page 12 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
3132398399400
401
402403404
405406407408409410411412
413414
415416
417418419
420421422
423424
425
426
427
428
429
430
33
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Page 13 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
3435
431
36
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
3. Requirements
3.1 Rationale
The Internet Printing Protocol Version 2.0 Second Edition [PWG5100.12] defines:
1. A collection of existing IPP specifications that form the basis for IPP/2.02. Standard job template attributes for document format, media size, print quality,
and so forth3. Specific interoperability requirements, such as HTTP/1.1 support with chunking
and IPP collection attribute support4. New version number and operation requirements for different classes of devices
Printing from mobile devices and to distributed print services involves several new use cases that are not addressed by existing IPP standards.
Therefore, this IPP Driverless Printing Extensions v2.0 specification should
1. Support identification of the Printer;2. Support determination of the proximity of the Client to the Printer;3. Support job ticket constraint resolution;4. Support job ticket-based Printer capability queries;5. Support controls for the color rendition of a document and for Client-managed
color workflows;6. Support Paid Imaging Services (specifically printing);7. Support supply monitoring and control;8. Support globally unique identifiers for all objects;9. Support Client localization of Printer Description attributes and values;10.Encourage adoption of modern IPP-based printing infrastructures; and11.Discourage the proliferation of vendor proprietary IPP operations and attributes
that damage IPP interoperability by duplicating IETF or PWG IPP standard operations and attributes.
3.2 Use Cases
Provide use cases for the document in subsections using the casual use case format.
3.2.1 Select Printer Using Geo-Location
The Client initiates a proximity detection of nearby Printers using Services and/or Discovery Protocols, hiding duplicate Printers that are reported by multiple Service and/or Discovery Protocols. The Client User Interface asks the User to select one of the nearby Printers. Finally, the User selects a nearby Printer.
Page 14 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
3738
432
433
434
435436437438439440
441442
443
444445446447448449450451452453454455456457
458
459
460
461462463464
39
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Preconditions: Both the Client and Printer have access to out-of-band geo-location information to allow for proximity detection, and both support common Discovery Protocol(s). Geo-location information can be obtained via manual configuration by the User, Operator, or Administrator, or through location sensing technologies such as the Global Positioning System or radio signal triangulation.
3.2.2 Select Printer with Confirmation
After selecting a Printer using any of several methods, the Client sends an identification request to the Printer to provide a visual and/or auditory alert on the Printer to allow the User to confirm that the correct Printer has been selected.
3.2.3 Print Using Loaded Media
User is viewing a photo and would like to print the photo on the largest borderless photographic media loaded on her Printer.
After the User initiates a print from the phone and selects a Printer, the Client automatically selects the largest borderless photographic media loaded on the Selected Printer and the highest print quality. The User selects additional processing intent for the Job and confirms the print action. The Client sends a print job request to the Printer with the Job Ticket and local photo. The Printer validates the Job Ticket and document data and then prints the photo.
Preconditions: Printer can report loaded media information such as size, type, coating, and weight. This may be detected automatically or manually entered by the User or Operation when loading the media.
3.2.4 Print a Secure Form
The treasurer of a small training company that is holding a meeting and seminar at a resort needs to print out 20 checks for training personnel. He uses an accounting program to enter the hours worked, bonuses, reimbursable expenses, and so forth and prints the checks on a printer provided by the resort using check blanks he brought to the meeting.
The User loads check blanks into the Printer and configured the loaded media as necessary at the Printer. After the User initiates a print from his accounting program, selects a Printer for printing, and selects checks to be printed, the Client User Interface displays a preview of the printed checks and the User confirms that checks amounts, payees and signature are correct. The Client automatically selects the check blank media. The User selects additional processing intent for the Job and confirms the print action. The Client sends a print job request to the Printer with the Job Ticket and document data containing the checks, correctly oriented for the check blank media. The User waits for the checks to be printed and removes any excess media from the Printer.
Page 15 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
4041465466467468469
470
471472473
474
475476
477478479480481482
483484485
486
487488489490491
492493494495496497498499500501
42
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
3.2.5 Print with Special Formatting
At a seminar located at a country resort, a factotum and general gofer has been asked to provide 80 sets of ten keywords/phrases, clearly printed on 2-inch by 1-inch paper slips for use in a get acquainted exercise. Costs are to be minimized. Gofer has a laptop with a word processer program. Resort has a Wi-Fi network available to users and a networked MFD at the business center. Attendant at business center will charge for any printed sheets removed from premises.
After the User initiates a print from his word processor and selects a Printer, the User selects the processing intent for the Job and confirms the print action. The Client produces document data using the media information (size and margins) in the Job Ticket so that 2-inch by 1-inch slips are spread evenly over each page and sends a print job request to the Printer with the Job Ticket and document. The Printer validates the Job Ticket and document data and then prints the document.
3.2.6 Print to a Service
John is flying to New York for a presentation and doesn't want to carry the presentations. John arrives in New York and goes online from his mobile phone. He selects a local print provider after reviewing the provider web pages and submits his document for printing. He specifies that he needs 10 color copies, printed duplex and stapled on the left side. He also specifies the covers to be 80lb. stock, and the internal pages to be 24lb. stock. John arrives at the provider and picks up his presentations, paying with his corporate credit card using an out-of-band method such as making a telephone call and providing the job identification and credit card numbers.
3.2.7 Print a Document with Page Subsets
Jim has 20 insurance policies to print, each consisting of 4 pages that must be stapled together. Jim submits an 80-page report document for printing and specifies that he wants every 4 pages stapled together.
3.2.8 Print on a Roll
Mike has a series of photos to print on a roll of photo media. Mike submits a multi-document job for printing and specifies that the roll be cut between each document in the job.
3.2.9 Job or Document Processing Failures
While processing a job, the Printer reports job or document processing issues to the Client, which displays an error message as needed and asks the User or Operator to confirm the disposition of the Job. Processing failures include out-of-memory, missing resource, missing or incorrect password, and other conditions that prevent a particular Job or document from printing.
Page 16 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
4344502
503504505506507508
509510511512513514
515
516517518519520521522523
524
525526527
528
529530531
532
533534535536537
45
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
3.2.10 Manual Duplex Printing
Larry has a long whitepaper he would like to print 2-sided on an entry-level laser printer without an automatic duplexer accessory. Larry submits the document for printing and specifies 2-sided printing. The Client software queries the Printer to determine the page stacking order and delivery order for both the input and output trays and then sends the even numbered pages in the correct order to the Printer. When those pages have been printed, the Client software instructs Larry to insert the pages back in the input tray in the correct orientation. Once the pages are loaded in the input tray, the Client software sends the odd numbered pages to the Printer.
3.2.11 Continuous Printing
A scientist wants to continuously print graphs of seismometer readings on a roll of paper loaded in a Printer with a roll cutter. The Client software collects data from the seismometers and sends one-inch print documents to the Printer at regular intervals. Every hour the Client Software instructs the Printer to trim the roll at the end of a document.
3.2.12 Correlation of Multiple Printers
An operator monitors and maintains multiple printers managed by several print servers. The Client software correlates Printers registered with a directory service or dynamic discovery protocol in order to provide a hierarchical display of the available servers, printers, jobs, and current state.
3.2.13 Manufacturer-Deployed Print Quality Mode
X Printers, a printer manufacturer, has developed a new technology that provides significant customer benefit above and beyond that of the existing print quality modes available. It is exposed to the user as a new "X Magic" print quality mode. The "X Magic" print quality mode depends on the printer having a print engine mechanism that implements the requisite imaging technology.
The new print quality mode does not fit well in the context of the existing print quality modes, and the vendor does not want to cause customer confusion by remapping the use of existing print quality modes on devices that support the technology, and not on those that do not. Doing so would also prevent product differentiation.
In this case, the existing basic print quality modes (Draft, Normal, High) are preserved and the new print quality mode is added as a custom mode. A tooltip explains to the user the value provided by the “X Magic” print quality mode. The client drivers are unaware of the mode’s meaning. Since the custom PQ mode is defined on the device, the mode will only be shown when connected to a device supporting that mode.
Page 17 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
4647538
539540541542543544545546
547
548549550551552
553
554555556557
558
559560561562563
564565566567
568569570571572
48
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
3.2.14 Administrator-Deployed Print Quality Mode
A customer has agreed with its print service provider to pay for an additional print quality mode called "Eco-Draft", that is enabled through the service contract. This additional print quality mode will only be made available on select printers, facilitated by the print service provider's IT administration and deployment system.
This "Eco-Draft" print mode differs from the standard "Draft", "Normal" and "High" modes in that, when selected and indicated to the Printer, the Printer employs a unique combination of rendering selections to produce output generally comparable to "Draft" but with a significantly reduced ink or toner usage, and a corresponding reduction in per-page cost. In order to preserve the conventional definition and user perception of "Draft", the “Eco-Draft” is offered as a new print quality setting unique to this deployment. A unique name and quality value are important for two reasons: making it clear to end users they are using a different print quality, so they can make an informed choice; and for job accounting reasons so that the billing system can bill pages using this quality level differently than the other familiar quality levels.
The IT administrators have a print policy defined so that users from different departments or role families are given different print capabilities. Those in the Finance department will only be offered the “Eco-Draft” print quality option, while executives and those in the Marketing department will be offered "Eco-Draft" in addition to the standard “Draft”, “Normal” and “High” options. The different quality levels factor into the billing cost the IT administrators and their print service providers have negotiated.
3.2.15 Manufacturer-Deployed Color Transformation Preferences
X Printers, a printer manufacturer, has produced printers for many years. Its customers have asked X Printers to provide a “color output mode” control with a “legacy color compatibility mode” choice. X Printers implements this feature in its newer printers that have more accurate color output, to cause them to produce output that appears as though it was printed on an older printer whose output exhibited a different particular set of color output characteristics. The customers want to be able to select this “color output preference” on a per-job and/or per-Client basis, because some users have a need for this, but only in certain applications, while others do not.
The customers have also asked for a "print preview" to show them what the color would look like before printing. The printers that implement this new "legacy color compatibility mode" also provide a special "soft proofing" ICC profile so that the client can present this accurately to the user.
3.2.16 Administrator-Deployed Color Transformation Preference
Fred is a print administrator at an architecture firm. He has been tasked with finding a way to provide a “blueprint output mode” to the architects in the office, that can be selected as an option in the print dialog. When this option is selected, the submitted job will be output as though it was printed from a blueprinting machine. To produce this, the
Page 18 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
4950573
574575576577
578579580581582583584585586587
588589590591592593
594
595596597598599600601602
603604605606
607
608609610611
51
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
document color depth is flattened to a 1-bit monochrome, and then transformed so that the white background is rendered in Prussian blue (Web color #003153 or sRGB 0,49,83), and the "black" lines are rendered in white. Fred provisions the printer with settings and resources to describe the desired color transformation to its users' systems using an administrative interface to add this feature.
Lisa works in the office, and her laptop discovers this “Blueprint” color transformation option when it interrogates the printer for its capabilities. Her client device presents the “Blueprint” color transformation option in the print dialog. Lisa positions her mouse pointer over the option and sees a “tool tip” (snippet of descriptive text) over the “Blueprint” option, that describes what that will do. Lisa likes what the tool tip describes for the “Blueprint” option and selects it. The print preview in the print dialog shows her what the output will look like. She likes it more, so she clicks “Print”, and the job is printed as per the preview. Lisa is happy, and thanks Fred.
3.2.17 Print Quality Hints to Influence Printer Color Processing
Juan is a graphic artist, and his team has a high-performance color printer. It has produced high quality output for all of the applications from which he and his team are printing. But then Juan encounters a problem. He is viewing a document in a particular application, prints the document, and realizes that the output is not meeting his needs. He is unable to find settings in the application that will allow it to produce satisfactory printed output without either changing the document in unacceptable ways or affecting other users of the printer. He looks in the print dialog and finds a set of "print quality hints", and through a process of trial-and-error, is able to produce output that meets his needs.
Knowing he will need these settings in the future, and also knowing that his computer supports IPP Presets, he saves these settings as a Preset for future quick access.
3.3 Exceptions
The following subsections define exceptions in addition to those defined in the Internet Printing Protocol/1.1 [STD92].
Provide exceptions for the use cases using the casual use case format.
3.4 Out of Scope
The following are considered out of scope for this specification:
1. Methods for geo-location and proximity detection for the Select Printer Using Geo-Location (section 3.2.1) use case
2. The actual method of payment for the Print to a Service (section 3.2.6) use case3. Constraining choice of document formats suitable for the Print use cases4. Discovery protocols used to locate Printers
Page 19 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
5253612613614615616
617618619620621622623624
625
626627628629630631632633634
635636
637
638639
640
641
642
643644645646647
54
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
3.5 Design Requirements
The design requirements for this specification are:
1. Follow the naming conventions defined in the IPP/1.1 Model and Semantics [STD92], including keyword value (lowercase) and hyphenation requirements;
2. Optimize compatibility with existing IETF and PWG IPP operations when making design decisions in defining new operations and attributes;
3. Define new device attributes that allow a Client to correlate multiple Printers to a single device or server supporting the Printers;
4. Define new Printer identification attributes and an identification operation;5. Define new geo-location attributes;6. Define new attributes for Paid Imaging Services (specifically printing);7. Define new Printer discovery and selection attributes;8. Define new job ticket constraint resolution attributes;9. Define new secure printing, identification, and metadata attributes and values;10.Define new media capability attributes;11.Define new input and output tray attributes;12.Define new limit and filtering attributes;13.Define new subset printing attributes;14.Define new color printing attributes15.Define new ICC color management attributes;16.Define new roll-fed printing attributes and values;17.Define new supply level and status monitoring attributes;18.Define new localization attributes and a message catalog file format; and19.Define new globally unique identifier attributes for all objects.
The design recommendations for this specification are:
1. Recommend the use of Printer-resident resources in order to support color proofing, identification, localization, and management.
4. IPP ModelThis specification extends the core features defined in the IPP/1.1 Model and Semantics [STD92] and other IPP specifications in a number of significant ways. An overview of each IPP extension is described below.
4.1 Limits
The IPP/1.1 Model and Semantics [STD92] defines support for limits in the Get-Jobs operation to allow a Client to efficiently collect a large list of Job objects in groups of N objects. Similarly, the IPP Event Notifications and Subscriptions [RFC3995] defines support for limits in the Get-Subscriptions operation but without support for selecting the first Subscription object to return.
Page 20 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
5556
648
649
650651652653654655656657658659660661662663664665666667668669670671
672
673674
675
676677678
679
680681682683684
57
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
This specification extends the notion of limits to include any operation that might return large lists of objects or attributes with large amounts of data such as "media-col-database" [PWG5100.7] and defines new attributes to allow a Client to discover which operations support limits and specify which object or attribute value to return first using a "first-index" operation attribute.
The new "first-index" operation attribute is an integer value representing an attribute value index in a 1setOf attribute value. The notion of an attribute value index requires that a Printer use a consistent ordering of 1setOf values that can be limited, i.e., the order of "media-col-database" values must be defined by the printer and consistent between Get-Printer-Attribute requests.
The existing "limit" operation attribute is an integer value representing the maximum number of values to return to the Client. Combined with "first-index", it allows a Client to query a subset of the Printer's values.
Because existing conforming Printer implementations will return the successful-ok-ignored-or-substituted-attributes status code when they do not support the "first-index" or "limit" operation attributes for a given request, a Client may be safely written to ask for a subset of values but handle receiving the complete set of values.
Printers that support the "first-index" and "limit" operation attributes must provide the values or objects in a consistent order such that a Client may retrieve all of those objects or values using a sequence of requests with increasing values for "first-index".
4.2 Filtering
The IPP/1.1 Get-Printer-Attributes operation [STD92] supports operation response attribute filtering using the "document-format" operation attribute. IPP/1.1 and IPP Event Notifications and Subscriptions [RFC3995] both support operation response attribute filtering based on the "requesting-user-name" or authenticated user for Job and Subscription operations. The Get-User-Printer-Attributes operation provides an operation similar to Get-Printer-Attributes that supports operation response attribute filtering based on the "requesting-user-name" or authenticated user.
This specification extends this filtering mechanism to include arbitrary Job Creation attributes such as "sides" so that Clients may determine which attributes and attribute values are supported for a particular type of Job.
4.3 Constraints and "preferred-attributes"
Printers can impose constraints between Job Creation attributes for practical (e.g., duplexing on transparency media), physical (e.g., label printing from a paper tray), and policy (e.g., no color printing for students) reasons. This specification defines two mechanisms on the Client and Printer that allow a Client to discover what those constraints are prior to creating a print job.
Page 21 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
5859685686687688689
690691692693694
695696697
698699700701
702703704
705
706707708709710711712
713714715
716
717718719720721
60
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Client constraint resolution uses two new Printer Description attributes that list the constraints and a list of changes used by the printer for resolving them automatically. These attributes allow the Client user interface to present a simple choice to the user when a selection triggers a constraint: revert to the previous settings or make the following additional changes.
Printer constraint resolution uses the Validate-Document and Validate-Job operations. Clients submit a Validate-Document or Validate-Job request with Template attributes that will be used in the actual document or job creation request. If conflicts are present in the supplied Template attributes, the Printer returns a "preferred-attributes" collection attribute indicating which substitute values will be used to resolve those conflicts.
There is no Validate-Subscription operation because subscriptions always enforce attribute fidelity.
4.4 Printer Resources
This specification includes IPP attributes whose values are URIs that point to resources such as printer icons, ICC profiles, and message catalog files. A supporting Client will retrieve these resources using the protocol specified by the URI's scheme component.
Printers SHOULD host these resources themselves to avoid communications with hosts other than the one hosting the Printer. Printers SHOULD provide these resources using "https:" or "http" scheme URIs. The URI's port component SHOULD match the Printer's port number as specified by the Printer's "printer-uri" attribute, to ensure resource access even when other services are disabled on the Printer's network host.
In order to support efficient retrieval of these resources, Clients SHOULD provide and Printers SHOULD support the If-Modified-Since request header [RFC7232] to allow Clients to locally cache these resources to minimize network bandwidth usage and provide a responsive user interface. HTTP caching semantics [RFC7234], particularly with HTTP proxies [RFC7230] MUST be followed.
4.5 ICC Color Management and Color Mode Previews
This specification supports a managed color workflow by defining new Printer Description attributes to enumerate supported ICC color profile files [ISO15076-1]. Clients may specify output rendering intent for a Job or Document and can query and download ICC color profiles listed by the Printer for color proofing, Client-side color rendering, and other workflows.
4.6 Localization
This specification defines and registers an existing plain text message catalog file format (MIME media type "text/strings") used on NeXT's NeXTSTEP and Apple's
Page 22 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
6162722723724725726
727728729730731
732733
734
735736737
738739740741742
743744745746747
748
749750751752753
754
755756
63
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
macOS operating systems [MACOS] [NEXTSTEP], that allows a Printer to provide a Client with localized textual values ("localized strings") for attribute names and/or attribute values. For example, a Printer that supports vendor-unique media sizes and "printer-state-reasons" keywords could provide the localized labels for these in its message catalogs. A Printer Description attribute allows the Client to discover the location of message catalogs for the language specified by the "attributes-natural-language" attribute in the Client request. Clients can also use the HTTP If-Modified-Since header to detect whether the referenced message catalog has been updated. The message catalog syntax also supports inline help content to be associated with a given attribute or attribute keyword / enum value.
4.7 Device Information
IPP has long exposed device information that was necessary for printing. As IPP expands to cover all of the Multi-Function Device (MFD) services defined by the PWG Semantic Model working group, additional device information will be needed. In the context of existing IPP-based printing, these new attributes are most applicable to print server implementations such as CUPS and high duty cycle print systems that support multiple independent IPP Printers.
This specification defines two new device attributes for IPP: the device unique identifier as a UUID and a count of services provided by the device. The device unique identifier allows a Client to correlate multiple IPP-based services to a single device or server. The count of services tells the client whether a particular device or server provides more than one IPP-based service, regardless of the type of service offered.
5. New OperationsProvide detailed data model and semantic information starting in section 4. Definition of data elements/attributes and operations happen in later sections.
5.1 Identify-Printer
The RECOMMENDED Identify-Printer operation allows a Client to request the Printer to physically identify itself by flashing lights, making sounds, or displaying something on the control panel.
The Printer SHOULD require an authenticated user [STD92] to perform this operation or provide other safeguards to prevent abuse of this operation. When the operation is not allowed for a security reason, the IPP object MUST reject the operation and return: 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate.
Page 23 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
6465757758759760761762763764765766
767
768769770771772773
774775776777778
779
780781
782
783784785
786787788789790
66
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
5.1.1 Identify-Printer Request
The following groups of attributes are supplied as part of the Identify-Printer Request:
Group 1: Operation Attributes
Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" attributes as described in [STD92]
Target:
The "printer-uri" (uri) operation attribute which is the target for this operation as described in [STD92]
Requesting User:
The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client as described in [STD92]. In addition, the "requesting-user-uri" (section 6.1.6) attribute SHOULD be supplied by the Client as well.
"message" (text(127)):
The Client OPTIONALLY supplies this attribute. The Printer object OPTIONALLY supports this attribute. It is a message to the user for purposes of identifying the Printer to the user.
"identify-actions" (1setOf type2 keyword) [section 6.1.4]:
The Client OPTIONALLY supplies this attribute. The Printer object MUST support this attribute. The value(s) specify how the Printer will identify itself to the Client.
5.1.2 Identify-Printer Response
The following attributes are part of the Identify-Printer Response:
Group 1: Operation Attributes
Status Message:
In addition to the REQUIRED status code returned in every response, the response OPTIONALLY includes a "status-message" (text(255)) and/or a "detailed-status-message" (text(MAX)) operation attribute as described in [STD92] and Appendix B.
Natural Language and Character Set:
Page 24 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
6768791
792
793
794
795796
797
798799
800
801802803
804
805806807
808
809810
811
812
813
814
815816817
818
69
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
The "attributes-charset" and "attributes-natural-language" attributes as described in [STD92].
Group 2: Unsupported Attributes
See [STD92] for details on returning Unsupported Attributes.
5.2 Validate-Document
The CONDITIONALLY REQUIRED Validate-Document operation allows a Client to verify operation and Document Template attributes to be used in a subsequent Send-Document or Send-URI request. This operation MUST be supported by Printers that conform to the IPP Document Object [PWG5100.5].
This operation is similar to the Validate-Job operation except that it validates attributes used for the Send-Document or Send-URI operations. Like Validate-Job, Validate-Document allocates no Printer resources (i.e., job objects) and does not allow a "document-password" or "document-uri" operation attribute.
Clients MUST NOT send the "document-password" operation attribute (section 6.1.2) in a Validate-Document request. Printers MUST reject a Validate-Document request containing a "document-password" operation attribute and return the client-error-bad-request status code.
5.2.1 Validate-Document Request
The following groups of attributes are supplied as part of the Validate-Document Request:
Group 1: Operation Attributes
Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" attributes as described in [STD92].
Target:
The "printer-uri" (uri) operation attribute which is the target for this operation as described in [STD92].
Requesting User:
The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client as described in [STD92]. In addition, the "requesting-user-uri" (section 6.1.6) attribute SHOULD be supplied by the Client as well.
Page 25 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
7071819820
821
822
823
824825826827
828829830831
832833834835
836
837838
839
840
841842
843
844845
846
847848849
72
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
"document-format" (mimeMediaType)
"document-name" (name(MAX))
Group 2: Document Template Attributes
The client OPTIONALLY supplies a set of Document Template attributes and SHOULD omit Group 2 rather than sending an empty group. However, a Printer MUST be able to accept an empty group.
5.2.2 Validate-Document Response
The following attributes are part of the Validate-Document Response:
Group 1: Operation Attributes
Status Message:
In addition to the REQUIRED status code returned in every response, the response OPTIONALLY includes a "status-message" (text(255)) and/or a "detailed-status-message" (text(MAX)) operation attribute as described in [STD92] 4.1.6 and Appendix B.
Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" attributes as described in [STD92].
"preferred-attributes" (collection):
This attribute (defined in section 6.1.5) MAY be returned when conflicts are detected in the supplied Operation and Document Template attributes.
Group 2: Unsupported Attributes
See [STD92] for details on returning Unsupported Attributes.
6. New Attributes
6.1 Operation Attributes
Table 1 lists the operation attributes defined in this specification, each with its corresponding conformance requirements. The conformance requirements pertain to the need for the attribute to be supported by the Printer, not that its support is required for all operations.
Page 26 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
7374850
851
852
853854855
856
857
858
859
860861862863
864
865866
867
868869
870
871
872
873
874875876877
75
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Table 1 - New Operation Attributes
Attribute Conformancedocument-metadata REQUIREDdocument-password OPTIONALfirst-index REQUIREDidentify-actions OPTIONALpreferred-attributes RECOMMENDEDrequesting-user-uri REQUIRED
6.1.1 document-metadata (1setOf octetString(MAX))
This REQUIRED operation attribute specifies one or more keyword/value pairs describing the document being supplied. Each element in the set consists of a keyword followed by "=" and a UTF-8 value string. Standard keywords are defined in The Dublin Core Metadata Element Set [RFC5013] and DCMI Metadata Terms [DCMITERMS]. Vendor or customer-defined keywords MUST use the prefix string "x-" to avoid future keyword name conflicts, for example "x-vendor-foo" or "x-customer-bar". The complete ABNF definition is provided in Figure 1. The ABNF is also available externally [JPS3ABNF].
Printers MUST copy this attribute to the corresponding Job Description (section 6.3.1) or Document Description (section 6.6.1) attribute of the same name when processing Print-Job, Print-URI, Send-Document, or Send-URI requests (section 7.6).
Figure 1 - ABNF for "document-metadata" Values
document-metadata = dc-elements "=" *utf8-char / dc-terms "=" *utf8-char / x-keyword "=" *utf8-char
dc-elements = "contributor" / "coverage" / "creator" / "date" / "description" / "format" / "identifier" / "language" / "publisher" / "relation" / "rights" / "source" / "subject" / "title" / "type"
dc-terms = "abstract" / "accessRights" / "accrualMethod" / "accrualPeriodicity" / "accrualPolicy" / "alternative" / "audience" / "available" / "bibliographicCitation" / "conformsTo" / "created" / "dateAccepted" / "dateCopyrighted" / "dateSubmitted" / "educationLevel" / "extent" / "hasFormat" / "hasPart" / "hasVersion" / "instructionalMethod" / "isFormatOf" / "isPartOf" / "isReferencedBy" / "isReplacedBy" / "isRequiredBy" / "issued" / "isVersionOf" / "license" / "mediator" / "medium" / "modified" / "provenance" / "references" / "replaces" / "requires" / "rightsHolder" / "spatial" / "tableOfContents" / "temporal" / "valid"
x-keyword = "x-" 1*(ALPHA / DIGIT / "." / "-" / "_")
Page 27 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
7677878
879
880881882883884885886887
888889890
891
892893894895896897898899900901902903904905906907908909910911912913914915
78
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
utf8-char = %x20-7E / %xC0-DF.80-BF / %xE0-EF.80-BF.80-BF / %xF0-F7.80-BF.80-BF.80-BF
6.1.2 document-password (octetString(1023))
This operation attribute specifies an unencrypted passphrase, OAuth token, or other string to be used to access the document content provided with the Print-Job, Print-URI, Send-Document, or Send-URI operations (section 7.6). Typically, the "document-password" value is an alphanumeric passphrase used to "unlock" a protected PDF [ISO32000] or OpenXPS [ECMA388] document. The maximum length of the "document-password" value is specified by the "document-password-supported" Printer Description attribute (section 6.8.1).
While the "document-password" value is necessarily associated with the document content, this attribute is not part of the Job or Document object and MUST NOT be reported by the Printer as part of a Job or Document object's description or template attributes. The value supplied MUST be retained by the Printer as long as the corresponding Document is retained.
This attribute MUST be supported if the Printer also supports the "document-password-supported" (section 6.8.1) attribute.
Printers and Clients that support this attribute MUST support Secure Transport. Printers MUST negotiate a TLS session prior to accepting a request containing this attribute. Clients MUST negotiate a TLS session prior to sending a request containing this attribute.
6.1.3 first-index (integer(1:MAX))
This REQUIRED operation attribute specifies the first object or element, starting at 1, to be returned in a response.
6.1.4 identify-actions (1setOf type2 keyword)
This operation attribute specifies the action(s) that are taken to identify the printer in an Identify-Printer request as defined in section 5.1, "Identify-Printer Operation". The standard keyword values are listed in Table 2.
This attribute MUST be supported if the Printer supports the Identify-Printer operation.
Table 2 - "identify-actions" Keyword Values
Keyword Descriptiondisplay Displays the default or Client-provided message on the
printer control panel.flash Flashes lights or the display on the printer.
Page 28 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
7980916917918919920
921
922923924925926927928
929930931932933
934935
936937938939
940
941942
943
944945946
947
948
81
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
sound Makes a sound.speak Speaks the default or Client-provided message.
The default value of this operation attribute is defined by the "identify-actions-default" Printer Description attribute (section 6.8.2) and the supported values are defined by the "identify-actions-supported" Printer Description attribute (section 6.8.4).
Note: This specification does not define a "print" action due to security and accounting issues.
6.1.5 preferred-attributes (collection)
This RECOMMENDED operation attribute specifies the attributes and values that will be substituted in a job or document creation request and is returned by the Printer in the Validate-Document response as defined in section 5.2 and the Validate-Job response as defined in section 7.9. Each member attribute in the collection represents an operation, Document Template, or Job Template attribute in the Validate-Document or Validate-Job request with the corresponding replacement value(s).
6.1.6 requesting-user-uri (uri)
This REQUIRED operation attribute contains the URI of the end user that is submitting the request. The value is typically a UUID encoded as defined in A Universally Unique IDentifier (UUID) URN Namespace [RFC4122] or an email address encoded as defined in the "mailto:" URI scheme [RFC6068], although any valid URI may be supplied.
The intent of this attribute is to provide an unambiguous user identifier since the "requesting-user-name" operation attribute is often not unique, e.g., "John Doe". However, because both of the attributes can be supplied by the Client, the Printer object may modify the values supplied based on information obtained from an authentication service [STD92].
The "requesting-user-uri-supported" Printer Description attribute (section 6.8.33) specifies whether the "requesting-user-uri" operation attribute is supported.
6.2 Job and Document Template Attributes
Table 3 lists the Job and Document Template attributes defined in this specification, each with its corresponding conformance requirements.
Table 3 - New Job and Document Template Attributes
Attribute Conformanceeliminate-margins REQUIREDjob-error-action OPTIONALmedia-overprint OPTIONALmedia-overprint-type OPTIONAL
Page 29 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
8283
949950951
952953
954
955956957958959960
961
962963964965
966967968969970
971972
973
974975
976
84
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
pages-per-subset DEPRECATEDprint-color-mode REQUIREDprint-rendering-intent REQUIRED
6.2.1 eliminate-margins (type2 keyword)
This Job Template attribute specifies the set of margins the Printer should remove from the Input Pages. This is primarily to support certain types of roll-feed media printing scenarios.
Table 4 - "eliminate-margins" Keyword Values
Keyword Descriptionnone Do not eliminate any whitespace or margins.all Eliminate the "top margin" and adjacent whitespace at the
top of each page and the "bottom margin" and adjacent whitespace at the bottom of each page.
banner Eliminate whitespace and margins between pages, but not the "top margin" and adjacent whitespace at the top of the first page or the "bottom margin" and adjacent whitespace at the bottom of the last page.
6.2.2 job-error-action (type2 keyword)
This Job Template attribute specifies the action a Printer takes when an error is encountered in a document during processing of the job. Standard keyword values are shown in Table 5.
Note: When a Printer stops processing a job, it MAY temporarily add the 'processing-to-stop-point' keyword to the "job-state-reasons" Job Description attribute. See [STD92] for more information.
Table 5 - "job-error-action" Keyword Values
Keyword Descriptionabort-job Stop processing the job and move it to the 'aborted' state.
The 'aborted-by-system' keyword MUST be present in the "job-state-reasons" Job Description attribute.
cancel-job Stop processing the job as if the Printer had accepted a Cancel-Job request [STD92] from the user. The 'job-canceled-by-user' keyword MUST be present in the "job-state-reasons" Job Description attribute.
continue-job Continue processing the next document in the job or, if this
Page 30 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
8586
977
978
979980981
982
983
984
985986987
988989990
991
87
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
is the last document in the job, move the job to the 'completed' state.
suspend-job Stop processing the job and move it to the 'processing-stopped' state as if the Printer had accepted a Suspend-Current-Job request (section 4.3.1 [RFC3998]). The 'job-suspended-by-user' keyword MUST be present in the "job-state-reasons" Job Description attribute.
6.2.3 media-overprint (integer)
This Job Template attribute specifies how far in "PWG Units" (.01mm or 1/254") the Printer should expand each Input Page content beyond the selected media edges to "overprint" to ensure there is no unmarked media in cases where the media being fed is misaligned.
6.2.4 media-overprint-type (type2 keyword)
This Job Template attribute specifies how the Printer should expand each Input Page content beyond the selected media edges to ensure no portion of the loaded media remains unmarked.
Table 6 - "media-overprint-type" Keyword Values
Keyword Description Conformancescale Input Page scaled up to
overprintREQUIRED
extend Input Page edge pixel color values "extended" to overprint
REQUIRED
6.2.5 print-color-mode (type2 keyword)
This REQUIRED Job Template attribute specifies the color mode to use when printing a job. The Printer MUST print the job using the requested color mode. Standard keyword values are shown in Table 7.
Vendor-defined keywords SHOULD have the distinguishing prefix 'smiNNN-' [STD92] where NNN is an SMI Private Enterprise Number (PEN) [IANA-PEN]. Vendor-defined keywords SHOULD have either the '-monochrome' or '-color' suffixes to assist clients. For example, if the company Example Corp. had obtained the SMI PEN 32473, has a vendor-unique color mode "magic" that pertains to color, the Printer could specify the 'smi32473-magic-color'.
Table 7 - "print-color-mode" Keyword Values
Keyword Description Conformanceauto Automatic based on document REQUIREDauto-monochrome Printer chooses monochrome RECOMMENDED
Page 31 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
8889
992
993994995996
997
9989991000
1001
1002
100310041005
100610071008100910101011
1012
90
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
or process-monochrome based on document
bi-level 1-colorant (typically black) threshold output
OPTIONAL (note 1)
color Full-color output CONDITIONALLY REQUIRED (note 2)
highlight 1-colorant + black output OPTIONALmonochrome 1-colorant (typically black)
shaded/grayscale outputREQUIRED
process-bi-level Process (2 or more colorants) threshold output
OPTIONAL
process-monochrome Process (2 or more colorants) shaded/grayscale output
OPTIONAL (note 3)
Notes:
1 - Optional because the actual appearance is implementation-specific.
2 - Required for color Printers.
3 - Optional because process black on laser printers can be problematic.
6.2.6 print-rendering-intent (type2 keyword)
This RECOMMENDED Job Template attribute specifies how out-of-gamut colors (or shades of gray) are mapped to device colors when printing. Printers MUST support this attribute if they support the "printer-icc-profiles" attribute (section 6.8.24). If supported, the Printer MUST print the job using the requested rendering intent. Standard keyword values are shown in Table 8.
Table 8 - "print-rendering-intent" Keyword Values
Keyword Description Conformanceabsolute Clip out-of-gamut colors to preserve in-gamut
accuracy without adjusting the white point.OPTIONAL
auto Automatically determine the rendering intent based on the document and job ticket.
REQUIRED
perceptual Map out-of-gamut colors at the expense of in-gamut accuracy.
OPTIONAL
relative Clip out-of-gamut colors to preserve in-gamut accuracy, adjusting the white point as necessary.
REQUIRED
relative-bpc Clip out-of-gamut colors to preserve in-gamut accuracy, adjusting both the white and black points as necessary.(bpc = Black Point Compensation)
REQUIRED
saturation Preserve saturated colors. OPTIONAL
Page 32 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
9192
1013
1014
1015
1016
1017
10181019102010211022
1023
93
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.3 Job Description Attributes
6.3.1 document-metadata (1setOf octetString(MAX))
This CONDITIONALLY REQUIRED Job Description attribute specifies one or more keyword/value pairs describing the document being supplied. This attribute MUST be supported when the IPP Document Object [PWG5100.5] is not supported. The format of each element in the set is defined in section 6.1.1. The "document-metadata" Document attribute is copied from the operation attribute of the same name as defined in section 7.6.
6.4 Job Status Attributes
Table 9 lists the Job Status attributes defined in this specification, each with its corresponding conformance requirements.
Table 9 - New Job Status Attributes
Attribute Conformancejob-originating-user-uri REQUIREDjob-pages OPTIONALjob-pages-completed OPTIONALjob-pages-completed-current-copy OPTIONALjob-uuid REQUIRED
6.4.1 job-originating-user-uri (uri)
This REQUIRED Job Status attribute contains the URI of the most authenticated end user that submitted the job creation request as defined in section 7.1.
6.4.2 job-pages (integer(0:MAX))
This Job Status attribute contains the total number of input pages for the documents in the Job. See section 11 for a description of the relationship of this attribute to the "job-impressions" and "job-media-sheets" attributes.
This attribute MUST be supported if the "job-pages-completed" Job attribute (section 6.4.3) is supported.
6.4.3 job-pages-completed (integer(0:MAX))
This Job Status attribute specifies the total number of input pages of the documents in the Job that have been processed. See section 11 for a description of the relationship of this attribute to the "job-impressions-completed" and "job-media-sheets-completed" attributes.
Page 33 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
9495
1024
1025
102610271028102910301031
1032
10331034
1035
1036
1037
10381039
1040
104110421043
10441045
1046
1047104810491050
96
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
This attribute MUST be supported if the "job-pages" Job attribute (section 6.4.2) is supported.
6.4.4 job-pages-completed-current-copy (integer(0:MAX))
This Job Status attribute specifies the total number of input pages of the documents in the Job that have been processed for the current copy. This attribute MUST be supported if the "job-pages" Job attribute (section 6.4.2) is supported.
6.4.5 job-uuid (uri(45))
This REQUIRED Job Status attribute specifies a globally unique identifier that MUST be a 45-octet "urn:uuid" URI [RFC4122]. The Printer generates the globally unique identifier when it creates a new Job object in response to a job creation request.
This attribute MUST NOT be used as a Job identifier in IPP Job operations, but MAY be used as a Job identifier for other protocol bindings and SHOULD be used for Job accounting and auditing.
6.5 Subscription Status Attributes
Table 10 lists the Subscription Status attributes defined in this specification, each with its corresponding conformance requirements.
Table 10 - New Job Status Attributes
Attribute Conformancenotify-subscription-uuid CONDITIONALLY REQUIREDnotify-subscriber-user-uri CONDITIONALLY REQUIRED
6.5.1 notify-subscription-uuid (uri(45))
This CONDITIONALLY REQUIRED Subscription Status attribute specifies a globally unique identifier that MUST be a 45-octet "urn:uuid" URI [RFC4122]. This attribute is REQUIRED if "IPP: Event Notifications and Subscriptions" [RFC3995] is supported.
The Printer generates the globally unique identifier when it creates a new Subscription object in response to a subscription creation request, which can be included as part of a job creation request.
The "notify-subscription-uuid" attribute MUST NOT be used as a Subscription identifier in IPP subscription operations but MAY be used as a Subscription identifier for other protocol bindings and SHOULD be used for Subscription accounting and auditing.
Page 34 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
9798
10511052
1053
105410551056
1057
105810591060
106110621063
1064
10651066
1067
1068
1069
107010711072
107310741075
107610771078
99
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.5.2 notify-subscriber-user-uri (uri)
This CONDITIONALLY REQUIRED Subscription Status attribute contains the most authenticated URI of the end user that submitted the subscription creation request as defined in section 7.1. This attribute is REQUIRED if "IPP: Event Notifications and Subscriptions" [RFC3995] is supported.
6.6 Document Description Attributes
Table 11 lists the Document Description attributes defined in this specification, each with its corresponding conformance requirements.
Table 11 - New Document Description Attributes
Attribute Conformancedocument-metadata CONDITIONALLY REQUIREDpages OPTIONAL
6.6.1 document-metadata (1setOf octetString(MAX))
This CONDITIONALLY REQUIRED Document Description attribute specifies one or more keyword/value pairs describing the document being supplied. This attribute MUST be supported when the IPP Document Object [PWG5100.5] is supported. The format of each element in the set is defined in section 6.1.1. The "document-metadata" Document attribute is copied from the operation attribute of the same name as defined in section 7.6.
6.6.2 pages (integer(0:MAX))
This Document Description attribute contains the total number of input pages for the document. See section 11 for a description of the relationship of this attribute to the "impressions" and "media-sheets" attributes.
This attribute MUST be supported if the "pages-completed" Document attribute (section 6.7.2) and the IPP Document Object [PWG5100.5] are supported.
6.7 Document Status Attributes
Table 12 lists the Document Description attributes defined in this specification, each with its corresponding conformance requirements.
Table 12 - New Document Status Attributes
Attribute Conformancedocument-uuid CONDITIONALLY REQUIRED
Page 35 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1001011079
1080108110821083
1084
10851086
1087
1088
1089
109010911092109310941095
1096
109710981099
11001101
1102
11031104
1105
102
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
pages-completed OPTIONAL
6.7.1 document-uuid (uri(45))
This CONDITIONALLY REQUIRED Document Status attribute specifies a globally unique identifier that MUST be a 45-octet "urn:uuid" URI [RFC4122]. This attribute is REQUIRED if the IPP Document Object [PWG5100.5] is supported.
The Printer generates the globally unique identifier when it creates a new Document object in response to a document creation operation, which can be part of a job creation request.
This attribute MUST NOT be used as a Document identifier in IPP document operations but MAY be used as a Document identifier for other protocol bindings and SHOULD be used for Document accounting and auditing.
6.7.2 pages-completed (integer(0:MAX))
This OPTIONAL Document Status attribute specifies the total number of input pages of the document that have been processed. See section 11 for a description of the relationship of this attribute to the "impressions-completed" and "media-sheets-completed" attributes.
This attribute MUST be supported if the "pages" Document attribute (section 6.6.2) and the IPP Document Object [PWG5100.5] are supported.
6.8 Printer Description Attributes
Table 13 lists the Printer Description attributes defined in this specification, each with its corresponding conformance requirements.
Table 13 - New Printer Description Attributes
Attribute Conformancedocument-password-supported OPTIONALeliminate-margins-supported OPTIONALidentify-actions-default OPTIONALidentify-actions-supported OPTIONALipp-features-supported REQUIREDjob-constraints-supported RECOMMENDEDjob-error-action-default OPTIONALjob-error-action-supported OPTIONALjob-resolvers-supported RECOMMENDEDmedia-overprint-supported OPTIONALmedia-overprint-type-supported OPTIONAL
Page 36 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
103104
1106
1107
110811091110
111111121113
111411151116
1117
1118111911201121
11221123
1124
11251126
1127
105
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
multiple-operation-time-out-action OPTIONALpreferred-attributes-supported RECOMMENDEDprint-color-mode-default REQUIREDprint-color-mode-supported REQUIREDprint-color-mode-icc-profiles RECOMMENDEDprint-quality-hints-supported OPTIONALprint-rendering-intent-default OPTIONALprint-rendering-intent-supported OPTIONALprinter-charge-info OPTIONALprinter-charge-info-uri OPTIONALprinter-geo-location RECOMMENDEDprinter-get-attributes-supported REQUIREDprinter-icc-profiles RECOMMENDEDprinter-icons REQUIREDprinter-input-tray CONDITIONALLY REQUIREDprinter-mandatory-job-attributes OPTIONALprinter-organization REQUIREDprinter-organizational-unit REQUIREDprinter-output-tray CONDITIONALLY REQUIREDprinter-strings-languages-supported RECOMMENDEDprinter-strings-uri RECOMMENDEDrequesting-user-uri-supported REQUIRED
6.8.1 document-password-supported (integer(0:1023))
This OPTIONAL Printer Description attribute provides the maximum number of octets the Printer will accept for a "document-password" operation attribute (section 6.1.2).
Printers that support the "document-password" attribute MUST also support this attribute with a value of at least 255. The value 0 indicates that the attribute is not supported. The values 1 through 254 are not allowed.
6.8.2 eliminate-margins-supported (1setOf type2 keyword)
This OPTIONAL Printer Description attribute lists the supported values the Printer supports for the "eliminate-margins" Job Template attribute (section 6.2.1). This attribute MUST be supported if the Printer supports the "eliminate-margins" Job Template attribute.
6.8.3 identify-actions-default (1setOf type2 keyword)
This OPTIONAL Printer Description attribute provides the default value(s) the Printer will use if the Client omits the "identify-actions" operation attribute from an Identify-Printer operation request (section 5.1). This attribute MUST be supported if the Printer supports the Identify-Printer operation.
Page 37 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
106107
1128
1129
11301131
113211331134
1135
1136113711381139
1140
1141114211431144
108
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.8.4 identify-actions-supported (1setOf type2 keyword)
This OPTIONAL Printer Description attribute lists the values the Printer supports for the "identify-actions" operation attribute. This attribute MUST be supported if the Printer supports the Identify-Printer operation (section 5.1).
6.8.5 ipp-features-supported (1setOf type2 keyword)
This REQUIRED Printer Description attribute lists the IPP extension features that are supported by the Printer. Standard keyword values are listed in Table 14. The value 'none' MUST be reported if no extension features are supported and MUST NOT be reported otherwise.
Table 14 - "ipp-features-supported" Keyword Values
Keyword Descriptionnone No extension features are supported.document-object IPP Document Object [PWG5100.5]enterprise IPP Enterprise Printing Extensions [PWG5100.11]page-overrides Page overrides from IPP Page Overrides [PWG5100.6]production IPP Production Printing Extensions [PWG5100.3]subscription-object IPP Event Notifications and Subscriptions [RFC3995]
6.8.6 job-constraints-supported (1setOf collection)
This RECOMMENDED Printer Description attribute provides a set of collections that describe Job Template attributes that are not supported by the Printer, allowing a Client to pre-screen options selected by the user and resolve them prior to job submission or validation. This attribute is REQUIRED if the “job-resolvers-supported” attribute is supported.
Each collection consists of a “resolver-name (name(MAX))” member attribute plus any Job Template attributes and their list of unsupported values. The “resolver-name” member attribute MUST refer to a collection in the “job-resolvers-supported” attribute described below that specifies a matching "resolver-name" value. Multiple constraint collections can refer to the same “job-resolvers-supported” collection. Constraints for the "media-col" Job Template attribute [PWG5100.7] can be incomplete; that is, the "media-col" collection values can contain only those member attributes that contribute to the constraint.
Figure 2 illustrates how a constraint for duplex printing on transparency media could be specified by the Printer.
Figure 2 - Verbose "job-constraints-supported" and "job-resolvers-supported" Example
job-constraints-supported={ resolver-name="A"
Page 38 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1091101145
114611471148
1149
1150115111521153
1154
1155
11561157115811591160
11611162116311641165116611671168
11691170
1171
117211731174
111
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
sides="two-sided-short-edge" media-col={ media-type="transparency" }},{ resolver-name="A" sides="two-sided-long-edge" media-col={ media-type="transparency" }}
job-resolvers-supported={ resolver-name="A" sides="one-sided" media-col={ media-type="stationery" }}
To minimize the number of collections in "job-constraints-supported", multiple Job Template attribute value alternatives can be specified in a single collection using a "1setOf syntax" representation. Figure 3 illustrates a concise representation of the constraints described in Figure 2.
Figure 3 - Concise "job-constraints-supported" and "job-resolvers-supported" Example
job-constraints-supported={ resolver-name=“A” sides="two-sided-long-edge","two-sided-short-edge" media-col={ media-type="transparency" }}
job-resolvers-supported={ resolver-name=“A” sides="one-sided" media-col={ media-type="stationery" }}
Both encodings are syntactically correct and semantically equivalent; the latter representation SHOULD be used, since it is more concise and less error-prone.
6.8.7 job-error-action-default (type2 keyword)
This OPTIONAL Printer Description attribute provides the default value supplied by the Printer if the Client omits the "job-error-action" Job Template attribute.
Page 39 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
112113117511761177117811791180118111821183118411851186118711881189119011911192119311941195
1196119711981199
1200
12011202120312041205120612071208120912101211121212131214121512161217
12181219
1220
12211222
114
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.8.8 job-error-action-supported (1setOf type2 keyword)
This OPTIONAL Printer Description attribute lists the "job-error-action" Job Template attribute values supported by the Printer.
6.8.9 job-resolvers-supported (1setOf collection)
This RECOMMENDED Printer Description attribute provides a set of collections that describe Job Template attribute changes to make for constrained values, allowing a Client to pre-screen options selected by the user and resolve them prior to job submission or validation. This attribute is REQUIRED if the “job-constraints-supported” attribute is supported.
Each collection consists of a “resolver-name (name(MAX))” member attribute plus any Job Template attributes and their alternate values. Clients MUST only change as many Job Template attributes as are needed to resolve the constraint and MUST try each value in the order they are provided in the collection. The resolver potentially changes all of the constrained attributes in order to avoid constraint/resolver loops.
Resolvers containing the "media-col" Job Template attribute [PWG5100.7] may provide an incomplete value; that is, the "media-col" collection value can contain only those member attributes that need to be changed to resolve the constraint.
The “resolver-name” member attribute value MUST be used by at least one collection in the “job-constraints-supported” attribute described above. Constraint resolvers MUST NOT create loops, such that the resolver for constraint “A” causes constraint “B”, but the resolver for constraint “B” causes constraint “A”.
For example, a resolver for duplex printing on transparency media would be encoded as a collection containing “resolver-name”, “sides”, and “media-col” member attributes. The “sides” member attribute would have the value “one-sided” while the “media-col” member attribute would contain a "media-type" member attribute with the value “stationery”.
6.8.10 media-overprint-supported (rangeOfInteger(0:MAX))
This OPTIONAL Printer Description attribute defines the range of supported values the Client can specify for the "media-overprint" attribute (section 6.2.3). If the Printer supports this attribute, then it must also support the "media-overprint-" attribute.
6.8.11 media-overprint-type-supported (1setOf type2 keyword)
This OPTIONAL Printer Description attribute defines the values the Printer can accept for the "media-overprint-type" attribute (section 6.2.3). If the Printer supports this attribute, then it must also support the "media-overprint-type" attribute.
Page 40 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1151161223
12241225
1226
12271228122912301231
12321233123412351236
123712381239
1240124112421243
12441245124612471248
1249
125012511252
1253
125412551256
117
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.8.12 multiple-operation-time-out-action (type2 keyword)
This OPTIONAL Printer Description attribute defines the action that is taken when open jobs time out and is REQUIRED if the Printer supports the Create-Job operation. Table15 lists the available actions.
Table 15 - "multiple-document-time-out-action" Keyword Values
Keyword Descriptionabort-job The job is closed and moved to the 'aborted' state. The
'aborted-by-system' keyword MUST be present in the "job-state-reasons" Job Description attribute.
hold-job The job is closed and moved to the 'pending-held' state. The 'job-hold-until-specified' keyword MUST be present in the "job-state-reasons" Job Description attribute and the "job-hold-until" Job Template attribute MUST be set to 'indefinite'.
process-job The job is closed and moved to the 'pending' or 'processing' state.
6.8.13 preferred-attributes-supported (boolean)
This RECOMMENDED Printer Description attribute indicates whether the Printer will return the "preferred-attributes" attribute (section 6.1.5) in its Validate-Document (section 5.2) or Validate-Job (section 7.9) operation responses.
6.8.14 print-color-mode-default (type2 keyword)
This REQUIRED Printer Description attribute provides the default value supplied by the Printer if the Client omits the "print-color-mode" Job Template attribute (section 6.2.5).
6.8.15 print-color-mode-supported (1setOf type2 keyword)
This REQUIRED Printer Description attribute lists the supported "print-color-mode" attribute values supported by the Printer. The Printer MUST support this attribute if it supports
If this attribute is supported and non-standard keywords are among the keywords listed by this attribute, the Printer SHOULD support the "print-color-mode-icc-profiles" attribute (section 6.8.16) and SHOULD provide an ICC profile for all supported keywords, to allow a Client to present a soft proof preview for each supported print color mode. The Printer's message catalogs SHOULD provide localized user-presentable label strings for all non-standard "print-color-mode" keywords. The Printer's message catalogs SHOULD provide localized "tooltip" contextual help strings for all non-standard "print-color-mode" keywords.
Page 41 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1181191257
125812591260
1261
1262
126312641265
1266
12671268
1269
127012711272
12731274127512761277127812791280
120
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.8.16 print-color-mode-icc-profiles (1setOf collection)
This RECOMMENDED Printer Description attribute lists the set of ICC profiles the Printer provides to allow a Client to preview the color transformation result from the supported print-color-mode modes. This set is distinct from the "printer-icc-profiles" attribute (section 6.8.24) to make clear that the sets of ICC profiles have different intended purposes. These profiles are used only for soft proofing, while those provided by "printer-icc-profiles" are to be used only for color management.
Each collection includes the "print-color-mode" and "print-color-mode-profile-uri" members. A collection MAY also include as member attributes any Job Template attributes that contribute to the selection of the profile. Two collections MUST NOT have matching "print-color-mode" values.
6.8.16.1 profile-color-mode (type2 keyword)
This REQUIRED member attribute identifies the print color mode corresponding to this profile. The value of this member MUST be one of the keywords specified by the Printer's "print-color-mode-supported" attribute (section 6.8.15).
6.8.16.2 profile-uri (uri)
This REQUIRED member attribute provides a reference to a Printer-resident ICC color profile. The value MUST be an "https:" or "http:" scheme URI. Clients and Printers SHOULD follow the URI and HTTP best practices in section 12.
6.8.17 print-quality-hints-supported (1setOf keyword)
This OPTIONAL Printer Description attribute lists the Printer's Job Template attributes that influence print quality rendering performed by the Printer. This attribute provides the semantic grouping so that a Client doesn't have to "guess" as to the purpose from among all of the Printer's vendor-unique or site-unique IPP attributes.
The attribute syntax for all Job Template attributes named in this attribute MUST be one of the following:
boolean
integer
rangeOfInteger
type2 keyword
name
A Client SHOULD ignore a named attribute whose syntax is not one of these types . The Printer MUST support the "xxx-supported" Printer Description attribute for that
Page 42 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1211221281
128212831284128512861287
1288128912901291
1292
129312941295
1296
129712981299
1300
1301130213031304
13051306
1307
1308
1309
1310
1311
13121313
123
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
named attribute. The Printer SHOULD support the "xxx-default" Printer Description attribute for that named attribute.
6.8.17.1 print-quality-hints-supported Attribute Syntax / UI Control Mapping
A Client that supports this attribute could present a grouping of "advanced print settings" controls to the user, without having to be aware of the semantics of their meaning or purpose. A supporting Client might present each of these member attributes using the attribute syntax / UI control type mapping listed in Table 16.
Table 16: "print-quality-hints-supported" Attribute Syntax Possible Control Mappings
Syntax Control
boolean Checkbox
integer Text Box
name Pop-up Menu or List
rangeOfInteger Pair of Text Boxes
type3 enum Pop-up Menu or List
type3 keyword Pop-up Menu or List
6.8.17.2 print-quality-hints-supported Example
Figure 4 illustrates how this attribute might be used by a Client. The example Printer implements two vendor-unique print quality hint attributes "notpwg-clever-x" and "notpwg-magic-y", and names those two in its "print-quality-hints-supported" Printer Description attribute.
Figure 4 - "print-quality-hints-supported" example
ATTR boolean notpwg-clever-x-supported trueATTR boolean notpwg-clever-x-default falseATTR keyword notpwg-magic-y-supported 'none','aguamenti','duro','episkey'ATTR keyword notpwg-magic-y-default 'episkey'ATTR keyword print-quality-hints-supported 'notpwg-clever-x','notpwg-magic-y'
A Client could present a checkbox for "notpwg-clever-x" and a pop-up menu or list for "notpwg-magic-y".
Page 43 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
12412513141315
1316
1317131813191320
1321
1322
1323
1324132513261327
1328
13291330133113321333
13341335
126
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.8.18 print-rendering-intent-default (type2 keyword)
This OPTIONAL Printer Description attribute provides the default value supplied by the Printer if the Client omits the "print-rendering-intent" Job Template attribute.
6.8.19 print-rendering-intent-supported (1setOf type2 keyword)
This OPTIONAL Printer Description attribute provides a list of supported "print-rendering-intent" Job Template attribute values. If the "print-rendering-intent" Job Template attribute is supported, then the values "relative" and "relative-bpc" MUST be supported as well.
6.8.20 printer-charge-info (text(MAX))
This OPTIONAL Printer Description attribute provides a human-readable description of paid printing services for the Printer. Typically, this description will provide a summary of cost information.
6.8.21 printer-charge-info-uri (uri)
This OPTIONAL Printer Description attribute provides a "http:" or "https:" URI referring to a human-readable web page for paid printing services for the Printer. Typically, this web page will provide cost information and allow the Client to obtain a "job-accounting-id" value for subsequent print jobs.
6.8.22 printer-geo-location (uri | unknown)
This RECOMMENDED Printer Description attribute identifies the location of the associated device using the World Geodetic System 1984 [WGS84]. The means for expressing the location information is a “geo:” URI scheme [RFC5870]. When the information is unknown, Printers MUST return the "printer-geo-location" attribute using the unknown out-of-band value. Printers that support this attribute MUST allow the user to set the location manually.
6.8.23 printer-get-attributes-supported (1setOf keyword)
This REQUIRED Printer Description attribute lists the operation and Job Template attributes that contribute to the content returned by the Get-Printer-Attributes operation. The "document-format" value is REQUIRED for all Printers to conform to IPP/1.1 [STD92]. All other values are OPTIONAL.
6.8.24 printer-icc-profiles (1setOf collection)
This RECOMMENDED Printer Description attribute lists one or more ICC profiles that characterize the Printer or its rendering. Each collection value consists of "profile-name (name(MAX))" and "profile-uri (uri)" member attributes plus any Job Template attributes (as member attributes) that contribute to the selection of the profile.
Page 44 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1271281336
13371338
1339
1340134113421343
1344
134513461347
1348
1349135013511352
1353
135413551356135713581359
1360
1361136213631364
1365
1366136713681369
129
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
ICC profiles are generally used for Client-side color proofing and/or color management and MAY be externally managed via IPP or other protocols.
6.8.24.1 profile-name (name(MAX))
This REQUIRED member attribute provides a unique name for a given ICC profile. A given "profile-name" value MAY appear in multiple collection values but MUST always be paired with the same "profile-uri" value. That is, a "profile-name" of "Glossy Paper, High Quality" might be listed multiple times but will always refer to the same "profile-uri", for example "https://example.com/glossy-high.icc".
The "profile-name" value SHOULD be localized by the Printer based on the value of the "attributes-natural-language" operation attribute.
6.8.24.2 profile-uri (uri)
This REQUIRED member attribute references an ICC color profile as a "https:" or "http:" URI. Standard vendor-supplied profiles SHOULD be Printer-resident so that Client printing does not require access to hosts other than the one hosting the Printer. Clients and Printers SHOULD follow the URI and HTTP best practices in section 12.
6.8.25 printer-icons (1setOf uri)
This REQUIRED Printer Description attribute lists URIs for one or more Printer-resident images using "http:" or "https:" URIs. Clients and Printers SHOULD follow the URI and HTTP best practices in section 12.
The referenced images MUST be RGBA PNG [RFC2083] format, have square dimensions of 48x48, 128x128, or 512x512 pixels, represent the physical appearance of the Printer, and show the same perspective/view of the Printer. If only one image is provided, it MUST have dimensions of 128x128 pixels. Images MUST be listed from smallest to largest dimensions. Images MUST provide an alpha channel to mask the background surrounding the printer.
6.8.26 printer-input-tray (1setOf octetString(MAX))
This CONDITIONALLY REQUIRED Printer Description attribute provides current input tray details mapped from the SNMP prtInputTable defined in IETF Printer MIB v2 [RFC3805]. This attribute MUST be supported if the "media-source" member attribute [PWG5100.7] or "media-source-properties" member attribute [PWG5100.7] are supported.
If supported, this attribute MUST have the same cardinality (contain the same number of values) as the "media-source-supported" attribute. The i th value in the "printer-input-tray" attribute corresponds to the ith value in the "media-source-supported" attribute.
Page 45 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
13013113701371
1372
13731374137513761377
13781379
1380
1381138213831384
1385
138613871388
138913901391139213931394
1395
13961397139813991400
140114021403
132
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.8.26.1 Keywords for printer-input-tray
Table 17 defines the IPP datatypes and keywords for encoding "printer-input-tray" from the relevant machine-readable (non-localized) columnar objects of each prtInputEntry from prtInputTable [RFC3805]. Printer MIB objects without corresponding IPP keywords are not mapped, per DMTF CIM ranking activity in WIMS WG in 2006. A Printer MAY represent site-unique or vendor-unique information using extension keywords. The extension syntax is detailed in the ABNF.
Table 17 - Keywords for "printer-input-tray"
Printer MIB ObjectIPP Datatype IPP Keyword Conformance
prtInputCurrentLevel Integer level REQUIREDprtInputMaxCapacity Integer maxcapacity REQUIREDprtInputMediaDimFeedDirDeclared Integer mediafeed REQUIREDprtInputMediaDimXFeedDirDeclared Integer mediaxfeed REQUIREDprtInputName String name REQUIREDprtInputStatus Integer status REQUIREDprtInputType String type REQUIREDprtInputCapacityUnit String unit RECOMMENDEDprtInputDimUnit String dimunit RECOMMENDEDprtInputMediaColor (1) String mediacolor RECOMMENDEDprtInputMediaName (1) String medianame RECOMMENDEDprtInputMediaType (1) String mediatype RECOMMENDEDprtInputMediaWeight (2) Integer mediaweight OPTIONALprtInputIndex (3) Integer index DEPRECATED
Notes:
1. prtInputMediaName, prtInputMediaType, and prtInputMediaColor are RECOMMENDED in "printer-input-tray", because they are important but often unknown to the printer (while loaded media dimensions are usually known).
2. prtInputMediaWeight is OPTIONAL in "printer-input-tray", because most Printers can't sense loaded media weight.
3. prtInputIndex is DEPRECATED in "printer-input-tray", because correlation with the original MIB order is considered unimportant.
6.8.26.2 Encoding of printer-input-tray
Values of "printer-input-tray" MUST be encoded using the Net-ASCII subset of the US-ASCII character set [RFC5198]. Control codes (0x00 to 0x1F and 0x7F) MUST NOT be used. The ABNF [STD68] in Figure 5 defines the standard encoding in "printer-input-tray" for all the machine-readable (non-localized) columnar objects in prtInputTable [RFC3805]. The ABNF is also available externally [JPS3ABNF].
Figure 5 - ABNF for "printer-input-tray" Values
printer-input-tray = *input-required *[input-optional]
Page 46 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1331341404
140514061407140814091410
1411
1412
1413141414151416141714181419
1420
14211422142314241425
1426
1427
135
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
; set of input elements encoded into one value input-required = input-req ";"input-req = input-type / input-media-feed / input-media-xfeed / input-max-capacity / input-level / input-status / input-name input-optional = input-opt ";"input-opt = input-index / input-dim-unit / input-unit / input-media-name / input-media-weight / input-media-type / input-media-color / input-ext
input-type = "type" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., ; 'sheetFeedAutoRemovableTray') of prtInputType in [RFC3805] mapped ; indirectly from the *label* in PrtInputTypeTC in [IANAPRT]
input-media-feed = "mediafeed" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtInputMediaDimFeedDirDeclared in [RFC3805] input-media-xfeed = "mediaxfeed" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtInputMediaDimXFeedDirDeclared in [RFC3805] input-max-capacity = "maxcapacity" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtInputMaxCapacity in [RFC3805]
input-level = "level" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtInputCurrentLevel in [RFC3805] input-status = "status" "=" 1*DIGIT ; integer value as a numeric string mapped directly from ; prtInputStatus in [RFC3805] input-name = "name" "=" 1*ALPHA ; string value as an alpha string mapped directly from ; prtInputName in [RFC3805]
input-index = "index" "=" 1*DIGIT ; integer value as a numeric string mapped directly from ; prtInputIndex in [RFC3805]
input-dim-unit = "dimunit" "=" 1*ALPHA
Page 47 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
13613714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483
138
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
; enumerated value as an alpha string (e.g., 'other') of ; prtInputDimUnit in [RFC3805] mapped indirectly from ; the *label* in PrtMediaUnitTC in [RFC3805] input-unit = "unit" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'other') of ; prtInputCapacityUnit in [RFC3805] mapped indirectly from ; the *label* in PrtCapacityUnitTC in [RFC3805] input-media-name = "medianame" "=" 1*ALPHA ; string value as an alpha string mapped directly from ; prtInputMediaName in [RFC3805] input-media-weight = "mediaweight" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtInputMediaWeight in [RFC3805]
input-media-type = "mediatype" "=" 1*ALPHA ; string value as an alpha string mapped directly from ; prtInputMediaType in [RFC3805] input-media-color = "mediacolor" "=" 1*ALPHA ; string value as an alpha string mapped directly from ; prtInputMediaColor in [RFC3805]
input-ext = input-extname "=" input-extvalueinput-extname = 1*[ALPHA / DIGIT / "-"]input-extvalue = 1*[ALPHA / DIGIT / "-" / "." / ","] ; extension point for other MIB values not mapped
6.8.26.3 Examples of printer-input-tray
The following example shows two rows of the machine-readable (non-localized) columnar objects from prtInputTable encoded into corresponding values of "printer-input-tray".
Note: Line breaks are shown below for readability of this example. Line breaks MUST NOT be encoded into actual values of "printer-input-tray".
printer-input-tray[1] = type=sheetFeedAutoRemovableTray; mediafeed=110000;mediaxfeed=85000; maxcapacity=500;level=100;status=8;name=Tray1; index=1;dimunit=tenThousandthsOfInches;unit=sheets; medianame=na-letter;mediaweight=-2; mediatype=stationery;mediacolor=blue; printer-input-tray[2] = type=sheetFeedAutoRemovableTray; mediafeed=110000;mediaxfeed=85000; maxcapacity=100;level=20;status=8;name=Tray2; index=2;dimunit=tenThousandthsOfInches;unit=sheets; medianame=na-letter;mediaweight=-2;
Page 48 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
139140148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513
1514
151515161517
15181519
15201521152215231524152515261527152815291530153115321533
141
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
mediatype=photographic;mediacolor=white;
6.8.27 printer-mandatory-job-attributes (1setOf keyword)
This OPTIONAL Printer Description attribute lists the minimum Job Template and operation attributes that are required for a successful job creation operation. A Printer MAY reject the job creation operation if the Client does not supply these attributes in its request.
6.8.28 printer-organization (1setOf text(MAX))
This REQUIRED Printer Description attribute specifies the name of the organization (e.g., company, university, social club, etc.) that is administratively associated with this Printer. This attribute is semantically equivalent to the 'o' attribute type in the LDAP User Schema [RFC4519].
6.8.29 printer-organizational-unit (1setOf text(MAX))
This REQUIRED Printer Description attribute specifies the name of the organizational unit (e.g., 'Human Resources', 'Finance', etc.) that is functionally associated with this Printer. This attribute is semantically equivalent to the 'ou' attribute type in the LDAP User Schema [RFC4519].
6.8.30 printer-output-tray (1setOf octetString(MAX))
This CONDITIONALLY REQUIRED Printer Description attribute provides current output tray details mapped from the SNMP prtOutputTable defined in IETF Printer MIB v2 [RFC3805]. This attribute MUST be supported if the "output-bin" attribute [PWG5100.2] is supported.
If supported, this attribute MUST have the same cardinality (contain the same number of values) as the "output-bin-supported" attribute. The i th value in the "printer-output-tray" attribute corresponds to the ith value in the "output-bin-supported" attribute.
6.8.30.1 Keywords for printer-output-tray
Table 18 defines the IPP datatypes and keywords for encoding "printer-output-tray" from all of the machine-readable (non-localized) columnar objects in each prtOutputEntry from prtOutputTable [RFC3805]. Printer MIB objects without corresponding IPP keywords are not mapped, per DMTF CIM ranking activity in WIMS WG in 2006. A Printer MAY represent site-unique or vendor-unique information using extension keywords. The extension syntax is detailed in the ABNF.
Table 18 - Keywords for "printer-output-tray"
Printer MIB Object IPP Datatype IPP Keyword ConformanceprtOutputMaxCapacity Integer maxcapacity REQUIREDprtOutputName String name REQUIRED
Page 49 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1421431534
1535
1536153715381539
1540
1541154215431544
1545
1546154715481549
1550
1551155215531554
155515561557
1558
155915601561156215631564
1565
144
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Printer MIB Object IPP Datatype IPP Keyword ConformanceprtOutputPageDeliveryOrientation String pagedelivery REQUIRED (1)prtOutputRemainingCapacity Integer remaining REQUIREDprtOutputStackingOrder String stackingorder REQUIRED (1)prtOutputStatus Integer status REQUIREDprtOutputType String type REQUIREDprtOutputCapacityUnit String unit RECOMMENDEDprtOutputOffsetStacking String offsetstacking OPTIONAL (2)prtOutputIndex Integer index DEPRECATED (3)
Notes:
1. prtOutputStackingOrder and prtOutputPageDeliveryOrientation are REQUIRED in "printer-output-tray" in order to enable a Client to provide media load instructions for manual duplexing, envelope, and form printing.
2. prtOutputOffsetStacking is OPTIONAL because it was rated "B" (medium priority) in the DMTF CIM ranking activity in WIMS WG in 2006.
3. prtOutputIndex is DEPRECATED in "printer-output-tray", because correlation with the original MIB order is considered unimportant.
6.8.30.2 Encoding of printer-output-tray
Values of "printer-output-tray" MUST be encoded using the Net-ASCII subset of the US-ASCII character set [RFC5198]. Control codes (0x00 to 0x1F and 0x7F) MUST NOT be used. The ABNF [STD68] in Figure 6 defines the standard encoding in "printer-output-tray" for all the machine-readable (non-localized) columnar objects in prtOutputTable [RFC3805]. The ABNF is also available externally [JPS3ABNF].
Figure 6 - ABNF for "printer-output-tray" Values
printer-output-tray = *output-required *[output-optional] ; set of output elements encoded into one value output-required = output-req ";"output-req = output-type / output-max-capacity / output-page-delivery / output-remaining / output-stacking-order / output-status / output-name
output-optional = output-opt ";"
output-opt = output-index / output-unit / output-offset-stacking / output-ext
output-type = "type" "=" 1*ALPHA ; enumerated value as an alpha string
Page 50 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
145146
1566
1567156815691570157115721573
1574
15751576157715781579
1580
158115821583158415851586158715881589159015911592159315941595159615971598159916001601
147
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
; (e.g., 'removableBin') of prtOutputType ; in [RFC3805] mapped indirectly from ; the *label* in PrtOutputTypeTC in [IANAPRT] output-max-capacity = "maxcapacity" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtOutputMaxCapacity in [RFC3805] output-remaining = "remaining" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtOutputRemainingCapacity in [RFC3805] output-status = "status" "=" 1*DIGIT ; integer value as a numeric string mapped directly from ; prtOutputStatus in [RFC3805]
output-name = "name" "=" 1*ALPHA ; string value as an alpha string mapped directly from ; prtOutputName in [RFC3805] output-index = "index" "=" 1*DIGIT ; integer value as a numeric string mapped directly from ; prtOutputIndex in [RFC3805] output-unit = "unit" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'other') of ; prtOutputCapacityUnit in [RFC3805] mapped indirectly from ; the *label* in PrtCapacityUnitTC in [RFC3805] output-stacking-order = "stackingorder" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'firstToLast') of ; prtOutputStackingOrder in [RFC3805] mapped indirectly from ; the *label* in PrtOutputStackingOrderTC in [RFC3805]
output-page-delivery = "pagedelivery" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'faceUp') of ; prtOutputPageDeliveryOrientation in [RFC3805] mapped indirectly ; from the *label* in PrtOutputPageDeliveryOrientationTC in ; [RFC3805] output-offset-stacking = "offsetstacking" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'notPresent') of ; prtOutputOffsetStacking in [RFC3805] mapped indirectly from ; the *label* in PresentOnOff in [RFC3805]
output-ext = output-extname "=" output-extvalueoutput-extname = 1*[ALPHA / DIGIT / "-"]output-extvalue = 1*[ALPHA / DIGIT / "-" / "." / ","] ; extension point for other MIB values not mapped
6.8.30.3 Examples of printer-output-tray
The following example shows two rows of the machine-readable (non-localized) columnar objects from prtOutputTable encoded into corresponding values of "printer-output-tray".
Page 51 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1481491602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650
1651
165216531654
150
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Note: Line breaks are shown below for readability of this example. Line breaks MUST NOT be encoded into actual values of "printer-output-tray".
printer-output-tray[1] = type=removableBin; maxcapacity=500;remaining=-3;status=12;name=LeftOutputBin; index=1;unit=sheets;stackingorder=firstToLast; pagedelivery=faceDown;offsetstacking=notPresent; printer-output-tray[2] = type=removableBin; maxcapacity=300;remaining=-3;status=0;name=RightOutputBin; index=2;unit=sheets;stackingorder=firstToLast; pagedelivery=faceDown;offsetstacking=notPresent;
6.8.31 printer-strings-languages-supported (1setOf naturalLanguage)
This RECOMMENDED Printer Description attribute provides a list of languages that are supported for the "printer-strings-uri" Printer Description attribute (section 6.8.32).
This attribute MUST be supported if the "printer-strings-uri" attribute is supported.
6.8.32 printer-strings-uri (uri | no-value)
This RECOMMENDED Printer Description attribute provides a URI to a "text/strings" message catalog file. The "text/strings" MIME media type is defined in section 10.1.
If supported, the Printer MUST return a URI corresponding to the language specified by the "attributes-natural-language" operation attribute or the no-value out-of-band value if the Printer does not have a localization for the specified language but otherwise supports the attribute.
The URI MUST use the "https:" or "http:" scheme. The URI SHOULD point to a Printer-resident message catalog so that Client printing does not require access to hosts other than the one hosting the Printer. Clients and Printers SHOULD follow the URI and HTTP best practices in section 12.
Printers SHOULD provide localizations for all supported Job Template attributes, keywords, and enums as well as localizations for "document-state-reasons", "job-state-reasons", "notify-event", and "printer-state-reasons" keywords so that a Client may present a consistent user interface to the User.
This attribute MUST be supported if the "printer-strings-languages-supported" (section 6.8.31) attribute is supported.
6.8.33 requesting-user-uri-supported (boolean)
The REQUIRED "requesting-user-uri-supported" Printer Description attribute specifies whether the "requesting-user-uri" (section 6.1.6) operation, "job-originating-user-uri"
Page 52 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
15115216551656
16571658165916601661166216631664166516661667
1668
16691670
1671
1672
16731674
1675167616771678
1679168016811682
1683168416851686
16871688
1689
16901691
153
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
(section 6.4.1) Job Description, and "notify-subscriber-user-uri" (section 6.5.2) Subscription Description attributes are supported. Printers MUST support this attribute with a value of 'true'.
6.9 Printer Status Attributes
Table 19 lists the Printer Status attributes defined in this specification, each with its corresponding conformance requirements.
Table 19 - New Printer Status Attributes
Attribute Conformancedevice-service-count DEPRECATEDdevice-uuid REQUIREDprinter-config-change-date-time RECOMMENDEDprinter-config-change-time RECOMMENDEDprinter-supply RECOMMENDEDprinter-supply-description RECOMMENDEDprinter-supply-info-uri RECOMMENDEDprinter-uuid REQUIRED
6.9.1 device-service-count (integer(1:MAX))
This DEPRECATED Printer Status attribute specifies the number of Printer instances supported by the Imaging Device.
6.9.2 device-uuid (uri(45))
This REQUIRED Printer Status attribute specifies a globally unique identifier for the Imaging Device that MUST be a 45-octet "urn:uuid:" URI [RFC4122].
6.9.3 printer-config-change-date-time (dateTime)
This RECOMMENDED Printer Status attribute records the most recent time at which the 'printer-config-changed' Printer Event occurred whether or not any Subscription objects were listening for this event. This attribute helps a Client or operator to determine how recently any of the Printer description attributes has been changed.
If this attribute is supported, the Printer populates this attribute with the value of its "printer-current-time" attribute on power-up so that it always has a value. Whenever the 'printer-config-changed' Printer Event occurs, the Printer updates this attribute with the value of the Printer's "printer-current-time" attribute.
Page 53 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
154155169216931694
1695
16961697
1698
1699
1700
17011702
1703
17041705
1706
1707170817091710
1711171217131714
156
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
6.9.4 printer-config-change-time (integer(1:MAX))
This RECOMMENDED Printer Status attribute records the most recent time at which the 'printer-config-changed' Printer Event occurred whether or not any Subscription objects were listening for this event. This attribute helps a Client or operator to determine how recently any of the Printer description attributes has been changed.
On power-up, the Printer populates this attribute with the value of its "printer-up-time" attribute so that it always has a value. Whenever the 'printer-config-changed' Printer Event occurs, the Printer updates this attribute with the value of the Printer's "printer-up-time" attribute.
6.9.5 printer-supply (1setOf octetString(MAX))
This RECOMMENDED Printer Status attribute provides current supply details mapped from the prtMarkerSuppliesTable and prtMarkerColorantTable objects defined in IETF Printer MIB v2 [RFC3805].
This attribute MUST be supported if the "printer-supply-description" Printer Description attribute (section 5.5.22) is supported. If supported, this attribute MUST have the same cardinality (contain the same number of values) as the "printer-supply-description" attribute. The ith value in the "printer-supply" attribute corresponds to the ith value in the "printer-supply-description" attribute.
6.9.5.1 Keywords for printer-supply
Table 20 defines the IPP datatypes and keywords for encoding "printer-supply" from all of the machine-readable (non-localized) columnar objects in prtMarkerSuppliesTable and prtMarkerColorantTable [RFC3805]. A Printer MAY represent site-unique or vendor-unique information using extension keywords. The extension syntax is detailed in the ABNF.
Table 20 - Keywords for "printer-supply"
Printer MIB Object IPP Datatype IPP Keyword ConformanceprtMarkerSuppliesType String type REQUIREDprtMarkerSuppliesMaxCapacity Integer maxcapacity REQUIREDprtMarkerSuppliesLevel Integer level REQUIREDprtMarkerColorantValue String colorantname REQUIREDprtMarkerSuppliesClass String class RECOMMENDEDprtMarkerSuppliesSupplyUnit String unit RECOMMENDEDprtMarkerColorantIndex Integer colorantindex OPTIONALprtMarkerColorantRole String colorantrole OPTIONALprtMarkerColorantTonality Integer coloranttonality OPTIONALprtMarkerSuppliesMarkerIndex Integer markerindex OPTIONAL (1)
Page 54 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1571581715
1716171717181719
1720172117221723
1724
172517261727
17281729173017311732
1733
17341735173617371738
1739
159
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
prtMarkerSuppliesIndex Integer index DEPRECATED (2)
Notes:
1 - prtMarkerSuppliesMarkerIndex is OPTIONAL in "printer-supply" because most Printers don't have multiple markers.
2 - prtMarkerSuppliesIndex is DEPRECATED in "printer-supply" because correlation with the original MIB order is considered unimportant.
6.9.5.2 Encoding of printer-supply
Values of "printer-supply" MUST be encoded using the Net-ASCII subset of the US-ASCII character set [RFC5198]. Control codes (0x00 to 0x1F and 0x7F) MUST NOT be used. The ABNF [STD68] in Figure 7 defines the standard encoding in "printer-supply" for all the machine-readable (non-localized) columnar objects in prtMarkerSuppliesTable and prtMarkerColorantTable [RFC3805]. The ABNF is also available externally [JPS3ABNF].
Figure 7 - ABNF for "printer-supply" Values
printer-supply = *supply-required *[supply-optional] ; set of supply elements encoded into one value
supply-required = supply-req ";"supply-req = supply-type / supply-max-capacity / supply-level / colorant-name
supply-optional = supply-opt ";"supply-opt = supply-index / marker-index / supply-class / supply-unit / colorant-index / colorant-role / colorant-tonality / supply-ext
supply-type = "type" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'toner') of ; prtMarkerSuppliesType in [RFC3805] mapped indirectly from ; the *label* in PrtMarkerSuppliesTypeTC in [IANAPRT]
supply-max-capacity = "maxcapacity" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtMarkerSuppliesMaxCapacity in [RFC3805]
supply-level = "level" "=" 1*[DIGIT / "-"] ; integer value as a numeric string mapped directly from ; prtMarkerSuppliesLevel in [RFC3805]
colorant-name = "colorantname" "=" 1*ALPHA
Page 55 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
160161
1740
17411742
17431744
1745
17461747174817491750
1751
175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784
162
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
; string value as an alpha string mapped directly from ; prtMarkerColorantValue in [RFC3805]
supply-index = "index" "=" 1*DIGIT ; integer value as a numeric string mapped directly from ; prtMarkerSuppliesIndex in [RFC3805]
marker-index = "markerindex" "=" 1*DIGIT ; integer value as a numeric string mapped directly from ; prtMarkerSuppliesMarkerIndex in [RFC3805]
supply-class = "class" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'other') of ; prtMarkerSuppliesClass in [RFC3805] mapped indirectly from ; the *label* in PrtMarkerSuppliesClassTC in [RFC3805]
supply-unit = "unit" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'other') of ; prtMarkerSuppliesSupplyUnit in [RFC3805] mapped indirectly from ; the *label* in PrtMarkerSuppliesSupplyUnitTC in [RFC3805]
colorant-index = "colorantindex" "=" 1*DIGIT ; integer value as a numeric string mapped directly from ; prtMarkerColorantIndex in [RFC3805]
colorant-role = "colorantrole" "=" 1*ALPHA ; enumerated value as an alpha string (e.g., 'other') of ; prtMarkerColorantRole in [RFC3805] mapped indirectly from ; the *label* in PrtMarkerColorantRoleTC in [RFC3805]
colorant-tonality = "coloranttonality" "=" 1*DIGIT ; integer value as a numeric string mapped directly from ; prtMarkerColorantTonality in [RFC3805]
supply-ext = supply-extname "=" supply-extvalue ; extension point for other MIB values not mapped ; or site-unique / vendor-unique additional info
supply-extname = 1*[ALPHA / DIGIT / "-"]supply-extvalue = 1*[ALPHA / DIGIT / "-" / "." / ","]
6.9.5.3 Colorant Names in printer-supply
Colorant names in "printer-supply" values not listed or referenced in the IETF Printer MIB v2 MUST conform to the color names and extension formats defined in the PWG Media Standardized Names v2.0 [PWG5101.1], e.g., "light-cyan", "com.example-light-magenta_ff7fffff", etc. This allows Clients to present supply level monitoring user interface with the appropriate colors. Table 21 lists the standard colorant names with their corresponding reference sRGBA values.
Table 21 - Standard Colorant Names for "printer-supply"
Name sRGBA Value Sampleno-color Undefined
Page 56 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1631641785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824
1825
182618271828182918301831
1832
165
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
black 0x000000FFlight-black 0x808080FFblue 0x0000FFFFcyan 0x00FFFFFFlight-cyan 0xE0FFFFFFgold 0xFFD700FFgray 0x808080FFdark-gray 0x404040FFlight-gray 0xD3D3D3FFgreen 0x008000FFmagenta 0xFF00FFFFlight-magenta 0xFF77FFFFmulti-color Undefinedorange 0xFFA500FFred 0xFF0000FFsilver 0xC0C0C0FFwhite 0xFFFFFFFF yellow 0xFFFF00FFdark-yellow 0xFFCC00FF
6.9.5.4 Example of printer-supply
Figure 8 shows the values of "printer-supply" in "PAPI" syntax encoding, presenting seven rows of the machine-readable (non-localized) columnar objects from prtMarkerSuppliesTable and prtMarkerColorantTable.
Note: Line breaks are shown below for readability of this example. Line breaks MUST NOT be encoded into actual values of "printer-supply", as per section 6.9.5.2.
Figure 8 - Example values for "printer-supply" Printer Status attribute
printer-supply[1] = "type=tonerCartridge;maxcapacity=100;level=56;unit:percent;colorantname=black;colorantindex=1;colorantrole=process;coloranttonality=128;class=supplyThatIsConsumed",
printer-supply[2] = "type=tonerCartridge;maxcapacity=100;level=77;unit:percent;colorantname=cyan;colorantindex=2;colorantrole=process;coloranttonality=128;class=supplyThatIsConsumed",
printer-supply[3] = "type=tonerCartridge;maxcapacity=100;level=19;unit:percent;colorantname=magenta;colorantindex=3;colorantrole=process;coloranttonality=128;class=supplyThatIsConsumed",
printer-supply[4] = "type=tonerCartridge;maxcapacity=100;level=31;unit:percent;colorantname=yellow;colorantindex=4;colorantrole=process;
Page 57 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
166167
1833
183418351836
18371838
1839
184018411842184318441845184618471848184918501851185218531854185518561857
168
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
coloranttonality=128;class=supplyThatIsConsumed",
printer-supply[5] ="type=wasteToner;maxcapacity=100;level=67;unit=percent;colorantname=no-color;colorantindex=77;colorantrole=other;class=other",
printer-supply[6] ="type=fuser;maxcapacity=100;level=89;unit:percent;colorantname=no-color;colorantindex=88;colorantrole=other;class:other",
printer-supply[7] ="type=transferUnit;maxcapacity=100;level=84;unit:percent;colorantname=no-color;colorantindex=99;colorantrole=other;class:other"
6.9.6 printer-supply-description (1setOf text(MAX))
This RECOMMENDED attribute provides current supply descriptions mapped from the SNMP prtMarkerSuppliesDescription object in the prtMarkerSuppliesTable defined in IETF Printer MIB v2 [RFC3805].
This attribute MUST be supported if the "printer-supply" attribute (section 6.9.5) is supported. If supported, this attribute MUST have the same cardinality (contain the same number of values) as the "printer-supply" attribute. The i th value in the "printer-supply-description" attribute corresponds to the ith value in the "printer-supply" attribute.
6.9.6.1 Encoding of printer-supply-description
Values of the "printer-supply-description" attribute MUST be mapped from the corresponding human-readable (localized) values of prtMarkerSuppliesDescription, exactly as follows:
1. Each value of prtMarkerSuppliesDescription [RFC3805] MUST be converted from the character set specified by prtGeneralCurrentLocalization [RFC3805] and prtLocalizationCharacterSet [RFC3808] into the character set specified by "charset-configured" and then copied into the text value of "printer-supply-description";
2. Each value of "printer-supply-description" MUST be tagged [RFC5646] with the natural language specified by prtGeneralCurrentLocalization [RFC3805], prtLocalizationLanguage [RFC3808], and prtLocalizationCountry [RFC3808]; and
3. Each value of "printer-supply-description" MUST be in the same order as the corresponding value of "printer-supply" (i.e., strictly ascending order according to prtMarkerSuppliesIndex).
6.9.6.2 Example of printer-supply-description
Figure 9 describes in "PAPI" syntax encoding the "printer-supply-description" values corresponding to the "printer-supply" values from Figure 8, encoding the Printer's prtMarkerSuppliesDescription values in its prtMarkerSuppliesTable.
Page 58 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1691701858185918601861186218631864186518661867186818691870
1871
187218731874
1875187618771878
1879
188018811882
18831884188518861887188818891890189118921893
1894
189518961897
171
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Note: Line breaks are shown below for readability of this example. Line breaks MUST NOT be encoded into actual values of "printer-supply", as per section 6.9.6.1.
Figure 9 - Example of "printer-supply-description"
printer-supply-description[1] = "Black Toner Cartridge S/N:16859422"printer-supply-description[2] = "Cyan Toner Cartridge S/N:16852765"printer-supply-description[3] = "Magenta Toner Cartridge S/N:16859681"printer-supply-description[4] = "Yellow Toner Cartridge S/N:16859372"printer-supply-description[5] = "Waste Toner Bin S/N:16816815"printer-supply-description[6] = "Fuser Kit S/N:16820223"printer-supply-description[7] = "Transfer Kit S/N:16821304"
6.9.7 printer-supply-info-uri (uri)
This RECOMMENDED attribute provides a URI referring to a Printer-resident web page that provides controls for managing the Printer and its supplies, e.g., supply replacement, head alignment, self-test pages, and so forth. The web page MAY also provide supply part numbers, links for ordering supplies, and detailed instructions for replacing supplies.
The URI MUST use the “http” or “https” scheme with the Printer as the destination host - external URIs are not allowed.
6.9.8 printer-uuid (uri(45))
This REQUIRED attribute specifies a globally unique identifier for the Printer. The value MUST be a 45-octet "urn:uuid" URI as per [RFC4122].
The "printer-uuid" attribute MUST NOT be used as a Printer identifier in IPP Printer operations but MAY be used as a Printer identifier for other protocol bindings and SHOULD be used for Printer accounting and auditing.
7. Additional Semantics for Existing Operations
7.1 All Operations: "requesting-user-uri"
If the Printer supports the "requesting-user-uri" (section 6.1.6) operation attribute, Clients MAY supply it in a Create-Job, Create-Job-Subscription, Create-Printer-Subscription, Print-Job, or Print-URI operation. The Printer object sets the "job-originating-user-uri" (section 6.4.1) or "notify-subscriber-user-uri" (section 6.5.2) attribute as needed to the most authenticated URI that it can obtain from the authentication service over which the IPP operation was received. Only if such an authenticated URI is not available, does the Printer object use the value supplied by the Client in the "requesting-user-uri" operation of the operation (see IPP/1.1 Model and Semantics [STD92] sections 5.4.2, 5.4.3 and 9).
Page 59 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
17217318981899
1900
1901190219031904190519061907
1908
19091910191119121913
19141915
1916
19171918
191919201921
1922
1923
192419251926192719281929193019311932
174
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
7.2 Get-Printer-Attributes Operation: "first-index" and "limit"
Clients MAY provide and Printers MAY support job creation attributes beyond "document-format" to filter the response. The "printer-get-attributes-supported" Printer Description attribute (section 5.5.15) specifies which job creation attributes are supported by the Get-Printer-Attributes operation and MUST include "document-format".
In addition, if a Printer supports the "media-col-database" Printer Description attribute [PWG5100.7], the Client MAY provide and the Printer SHOULD support the "first-index" (section 6.1.3) and "limit" ([STD92]) operation attributes to limit the number of "media-col-database" values that are returned in the response.
7.3 Get-Subscriptions Operation: "first-index" and "limit"
If the Printer supports the Get-Subscriptions operation, Clients MAY provide and Printers MUST support the "first-index" operation attribute (section 6.1.3) in conjunction with the "limit" operation attribute ([STD92]) to select the first Subscription object that is returned in the response.
7.4 Get-Jobs Operation: "first-index" and "limit"
Clients MAY provide and Printers MUST support the "first-index" operation attribute (section 6.1.3) in conjunction with the "limit" operation attribute ([STD92]) to select the first Job object that is returned in the response.
7.5 Get-Documents Operation: "first-index" and "limit"
If the Printer supports the Get-Documents operation, Clients MAY provide and Printers MUST support the "first-index" operation attribute (section 6.1.3) in conjunction with the "limit" operation attribute ([STD92]) to select the first Document object that is returned in the response.
7.6 Print-Job, Print-URI, Send-Document, and Send-URI Operations: "document-metadata"
Clients MAY supply and Printers MUST support the "document-metadata" (section 6.1.1) operation attribute in the Print-Job, Print-URI, Send-Document, or Send-URI operations.
If the Printer conforms to the IPP Document Object [PWG5100.5], the Printer object MUST copy the attribute value to the Document object, otherwise the Printer object MUST copy the attribute value to the Job object.
Page 60 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
175176
1933
19341935193619371938
1939194019411942
1943
1944194519461947
1948
194919501951
1952
1953195419551956
1957
1958
195919601961
196219631964
177
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
7.7 Print-Job, Print-URI, Send-Document, and Send-URI Operations: "document-password"
If the Printer supports the "document-password" (section 6.1.2) operation attribute, Clients MAY supply it in a Print-Job, Print-URI, Send-Document, or Send-URI operation. The Printer object MUST treat the attribute value as private and confidential, MUST retain the value as long as the corresponding Job and Document are retained, MUST NOT persist the value beyond the life of the Job or Document, MUST NOT return the value in the response to the request, and MUST NOT set any Job or Document object attribute with the value of the "document-password" attribute.
If the Printer receives a request containing the "document-password" operation attribute prior to negotiation of a TLS session, it MUST return the 'client-error-bad-request' status code to the Client.
If the Printer determines that the supplied "document-password" value is not correct, it MUST return the 'client-error-document-password-error' (section 9.1) status code to the Client if a response has not already been sent and add the 'document-password-error' keyword to the "job-state-reasons" and, if supported, "document-state-reasons" attributes.
If the Printer determines that the supplied "document-password" value is correct but the Document does not allow printing, it MUST return the 'client-error-document-permission-error' status code to the Client if a response has not already been sent and add the 'document-permission-error' keyword to the "job-state-reasons" and, if supported, "document-state-reasons" attributes.
7.8 Validate-Job Operation: "document-password"
Clients MUST NOT send the "document-password" operation attribute (section 6.1.2) in a Validate-Job request. Printers MUST reject a Validate-Job request containing a "document-password" operation attribute and return the client-error-bad-request status code.
7.9 Validate-Job Operation: "preferred-attributes"
Printers MAY support returning the values for specific Job Template attributes that would actually be used (or that the Printer would prefer to use) based on the job creation attributes included in the Validate-Job request. Each Job Template attribute is returned as a member attribute in the "preferred-attributes" attribute in the Operation Attributes Group.
Printers indicate their support for this functionality by listing the Job Template attributes that may be returned in the "preferred-attributes-supported" Printer Description attribute (section 5.5.4).
Page 61 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
178179
1965
1966
1967196819691970197119721973
197419751976
19771978197919801981
19821983198419851986
1987
1988198919901991
1992
19931994199519961997
199819992000
180
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
8. Additional Values and Semantics for Existing Attributes
8.1 document-state-reasons (1setOf type2 keyword) and job-state-reasons (1setOf type2 keyword)
Table 22 lists new "document-state-reasons" and "job-state-reasons" keyword values.
Table 22 - New "document-state-reasons" and "job-state-reasons" Keyword Values
Keyword Descriptiondocument-password-error The Printer detected an incorrect document
content password and was unable to unlock the document for printing. This value MUST be supported if the "document-password" (section 6.1.2) operation attribute is supported.
document-permission-error The Printer was able to unlock the document but the document permissions do not allow for printing. This value MUST be supported if the "document-password" (section 6.1.2) operation attribute is supported.
document-security-error The Printer detected security issues (virus, trojan horse, or other malicious software) embedded within the document. Whether the Printer aborts the job and moves the job to the 'aborted' job state or prints all documents that do not contain detected security issues and moves the job to the 'completed' job state and adds the 'completed-with-errors' value in the job's "job-state-reasons" attribute depends on implementation and/or site policy. This value SHOULD be supported.
document-unprintable-error The Printer determined that the document was unprintable. This reason is intended to cover any issues of file size, format version, or complexity that would prevent the Printer from printing the document. Whether the Printer aborts the job and moves the job to the 'aborted' job state or prints all documents that do not contain detected security issues and moves the job to the 'completed' job state and adds the 'completed-with-errors' value in the job's "job-state-reasons" attribute depends on implementation and/or site policy. This value SHOULD be supported.
Page 62 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
181182
2001
2002
2003
2004
2005
183
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
8.2 finishings (1setOf type2 enum)
Table 23 lists new enum values for the "finishings" Job Template attribute that SHOULD be supported by Printers with roll-fed media.
Table 23 - New "finishings" Enum Values
Value Symbolic Name and Description'60' 'trim-after-pages': Trim output after each page.'61' 'trim-after-documents': Trim output after each document.'62' 'trim-after-copies': Trim output after each copy.'63' 'trim-after-job': Trim output after job.
8.3 media-source (type2 keyword | name(MAX))
This specification adds the new 'virtual' keyword value for the "media-source" member of "media-col" [PWG5100.7] to indicate a "virtual paper tray", to allow a Printer to indicate that it can produce a particular output size from some other media source (e.g. produce A4 output from A3 media, produce A3 output from A0 media using a cutter, etc.).
8.4 orientation-requested (type2 enum)
A new 'none' (7) value can be used with the "orientation-requested" Job Template attribute to specify that the Printer should not perform any rotations for orientation.
8.5 print-content-optimize (type2 keyword)
A new 'auto' value can be used with the "print-content-optimize" Job Template attribute [PWG5100.7] to specify that the Printer should automatically determine the best optimizations to perform when printing the document.
8.6 print-quality (type2 enum)
The following new enum values for the “print-quality” attribute allow a Printer to specify support for additional printer-specific print quality options that the Client can specify the Printer use for a Job. A Printer that supports any of the enum labels defined here MUST provide localized labels for each using the Localization Message Catalog available at the URL specified by “printer-strings-uri” (section 6.8.32). The Message Catalog localized strings provide the localization and the meaning of that enum for its own implementation. A Printer SHOULD also provide a localized “tool tip” using the “_tooltip” label extensions to the Message Catalog (section 10.1) to provide some contextual help for the vendor-unique or site-unique label string.
Enum Enum Label Description
Page 63 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
184185
2006
20072008
2009
2010
20112012201320142015
2016
20172018
2019
202020212022
2023
202420252026202720282029203020312032
186
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Value
3 draft [STD92]
4 normal [STD92]
5 high [STD92]
10 custom-10 Lowest custom print quality level
11 custom-11 Custom print quality level lower that 'custom-12'
12 custom-12 Custom print quality level lower that 'draft'
16 custom-16 Custom print quality level higher than 'high'
17 custom-17 Custom print quality level higher than 'custom-16'
18 custom-18 Highest custom print quality level
20 custom-20 Non-linear custom print quality
21 custom-21 Non-linear custom print quality
22 custom-22 Non-linear custom print quality
The string catalog entries for each of these might look like this:
"print-quality.10" = "EcoWickedDrafty";"print-quality.12" = "EcoDrafty";"print-quality.3" = "Draft";"print-quality.4" = "Normal";"print-quality.5" = "High";"print-quality.16" = "Max";"print-quality.18" = "MegaMax";"print-quality.20" = "Non-linear Ennui";"print-quality.21" = "Non-linear Trepidation";"print-quality.22" = "Non-linear Happiness";
"print-quality.10._tooltip" = "Usable only for rough layout";"print-quality.12._tooltip" = "Lower quality with greatly reduced toner use";"print-quality.3._tooltip" = "Low quality with less toner use";"print-quality.4._tooltip" = "Average quality - best for everyday use";"print-quality.5._tooltip" = "Higher quality";"print-quality.16._tooltip" = "Maximum quality";"print-quality.18._tooltip" = "Super Maximum quality";"print-quality.20._tooltip" = "Produces output that makes you bored";"print-quality.21._tooltip" = "Produces output that makes you nervous ";"print-quality.22._tooltip" = "Produces output that makes you kinder";
Page 64 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
187188
2033
203420352036203720382039204020412042204320442045204620472048204920502051205220532054
189
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
8.7 printer-state-reasons (1setOf type2 keyword)
Table 24 lists new keyword values for the "printer-state-reasons" Printer Description attribute that MUST be supported by Printers that report the corresponding Printer MIB [RFC3805] supply types.
Table 24 - New "printer-state-reasons" Keyword Values
Keyword Descriptioncleaner-life-almost-over A cleaning component corresponding to the Printer
MIB prtMarkerSuppliesType values cleanerUnit(18) and fuserCleaningPad(19) is nearing the end of its service life.
cleaner-life-over A cleaning component corresponding to the Printer MIB prtMarkerSuppliesType values cleanerUnit(18) and fuserCleaningPad(19) has reached the end of its service life.
8.8 uri-authentication-supported (1setOf type2 keyword)
The 'negotiate' keyword value MUST be used to indicate support for HTTP Negotiate authentication based on SPNEGO-based Kerberos and NTLM HTTP Authentication in Microsoft Windows [RFC4559].
9. Status Codes
9.1 client-error-document-password-error (0x418)
The Client has attempted to submit a Document using the Print-Job, Print-URI, Send-Document, or Send-URI operations with the wrong passphrase. The Client MAY try the request again with a new passphrase.
9.2 client-error-document-permission-error (0x419)
The Client has attempted to submit a Document using the Print-Job, Print-URI, Send-Document, or Send-URI operations that does not allow printing. The Client MUST NOT retry the request using the same document.
9.3 client-error-document-security-error (0x41A)
The Printer has detected security issues (virus, trojan horse, or other malicious software) embedded within the document and will not accept it for printing.
Page 65 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
190191
2055
205620572058
2059
2060
206120622063
2064
2065
206620672068
2069
207020712072
2073
20742075
192
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
9.4 client-error-document-unprintable-error (0x41B)
The Printer has determined that the document is unprintable due to size, format version, or complexity and will not accept it for printing.
10. Localization of Attributes and ValuesThe "printer-strings-uri" Printer Description attribute (section 6.8.32) provides the location of a language-specific, printer-resident message catalog file that provides localizations for attribute names, keyword values, and enum values.
10.1 Message Catalog File Format
This specification defines a new plain text message catalog format (MIME media type “text/strings”) based on the Apple “strings” file format to allow Printers to supply and Clients to present localized strings for supported attributes values. A sample English localization for registered IPP attributes, enum values, and keyword values is available on the PWG FTP server [PWG-CATALOG]. Boolean, dateTime, and integer values are not localizable using this format, and name and text values are presumed to already be localized [STD92].
Message catalog files consist of lines of UTF-8 encoded Unicode text following the general "KEY = VALUE" form. The KEY and VALUE elements can be wrapped in double quotes.:
"attribute-name" = "Localized Attribute Name Label";"attribute-name.enum-value" = "Localized Enum Value Label";"attribute-name.keyword-value" = "Localized Keyword Value Label";/* Comment for/to localizers */
Lines in a Message Catalog file can be terminated by a single line feed (%x0A) or a combination of carriage return and line feed (%x0D.0A). All lines in a Message Catalog file MUST use identical line terminators for consistency. Attribute names and values are limited to the characters defined for the IPP keyword value syntax [STD92].
Control characters (%x00-1F, %x7F), the double quote (%x22), and the backslash (%x5C) MUST be escaped in localized strings using a subset of the C language syntax:
\" A double quote (%x22)
\\ A backslash (%x5C)
\n A line feed (%x0A)
\r A carriage return (%x0D)
\t A horizontal tab (%x09)
Page 66 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
193194
2076
20772078
2079
208020812082
2083
2084208520862087208820892090
209120922093
2094209520962097
2098209921002101
21022103
2104
2105
2106
2107
2108
195
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
\### An octet represented by 3 octal digits
A more complete example is in section 10.3.
10.2 Message Catalog Help Resources
A Message Catalog MAY also contain two types of "help" content. The "_tooltip" suffix can be used to specify brief help content suitable for contextual presentation such as when a mouse pointer is hovered over a label. The "_helpurl" suffix can be used to specify a URL to more detailed, rich and possibly lengthy help content that could be presented in a separate "help" window. The general form is like so:
"attribute-name._tooltip" = "Localized Attribute Name Tooltip Help String""attribute-name._helpurl" = "URL to localized attribute help content"
"attribute-name.enum-value._tooltip" = "Localized Enum Value Tooltip Help String""attribute-name.enum-value._helpurl" = "URL to localized enum value help content"
"attribute-name.keyword-value._tooltip" = "Localized Keyword Value Tooltip Help String""attribute-name.keyword-value._helpurl" = "URL to localized keyword value help content"
A more complete example is in section 10.3.
10.3 Message Catalog Example
A Printer that specifies two collections in its "media-col-ready" [PWG5100.7], one that specifies 'stationery' for its "media-type " value, and the other that specifies 'smi32473-eco-lite' for its "finishing-template" value, can implement among others the following attributes and values, represented using "PAPI" syntax:
printer-uri="https://myprinter.local.:631/ipp/print"printer-strings-uri="https://myprinter.local.:631/ipp/en.strings"media-col-ready={ media-type="stationery" media-source="tray-1" media-size={ x-dimension=21000 y-dimension=29700 } media-top-margin=500 media-bottom-margin=500 media-left-margin=500 media-right-margin=500},{ media-type="smi32473-eco-lite" media-source="tray-2" media-color=white
Page 67 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1961972109
2110
2111
21122113211421152116
211721182119212021212122212321242125212621272128
2129
2130
2131213221332134
21352136213721382139214021412142214321442145214621472148214921502151
198
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
media-size={ x-dimension=21590 y-dimension=27940 } media-bottom-margin=500 media-left-margin=500 media-right-margin=500 media-top-margin=500}print-color-mode-supported=
auto,color,monochrome,smi32473-magic-color,smi32473-blueprint
print-color-mode-icc-profiles={ print-color-mode=smi32473-magic-color print-color-mode-profile-uri=https://myprinter.local.:631/sp/magic-
color.icc},{ print-color-mode=smi32473-blueprint
print-color-mode-profile-uri=https://myprinter.local.:631/sp/blueprint.icc}
The Printer's Message Catalog corresponding to "attributes-natural-language" = 'en-us' might include the following:
media-type = "Media Type";media-type.stationery = "Stationery";media-type.stationery._tooltip = "Conventional Stationery";media-type.stationery._helpurl = "//_help/media-types.html";media-type.smi32473-eco-lite = "PWG Eco Lite";media-type.smi32473-eco-lite._tooltip = "Lightweight paper that may tear";media-type.smi32473-eco-lite._helpurl = "//_help/media-types.html#ecolite";print-color-mode = "Print Color Mode";print-color-mode.auto = "Automatic";print-color-mode.auto-monochrome = "Auto Monochrome";print-color-mode.bi-level = "Text";print-color-mode.color = "Color";print-color-mode.highlight = "Highlight";print-color-mode.monochrome = "Monochrome";print-color-mode.process-bi-level = "Process Text";print-color-mode.process-monochrome = "Process Monochrome";print-color-mode.smi32473-magic-color = "Magic Color";print-color-mode.smi32473-magic-color._tooltip = "Makes the colors look
magical";print-color-mode.smi32473-blueprint = "Blueprint";print-color-mode.smi32473-blueprint._tooltip = "Blue background with white
foreground lines";
Page 68 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
1992002152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176
21772178
2179218021812182218321842185218621872188218921902191219221932194219521962197219821992200
2201
201
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
10.4 Message Catalog ABNF
Figure 10 provides the ABNF [STD68] for files conforming to the “text/strings” MIME media type. The ABNF is also available externally [JPS3ABNF].
Figure 10 - ABNF for the "text/strings" MIME Media Type
CATALOG = *(MESSAGE / COMMENT / *WSP CFLF / *WSP LF)MESSAGE = *WSP DQUOTE %x61-7A *KEYWORD-CHAR DQUOTE *WSP “=” *WSP QUOTED-STRING *WSP “;” *WSP (CRLF / LF)COMMENT = *WSP “/*" 1*CHAR "*/" *WSP (CRLF / LF)KEYWORD-CHAR = %x61-7A / DIGIT / “-“ / “.” / “_”QUOTED-STRING = DQUOTE 1*QUOTED-CHAR DQUOTEQUOTED-CHAR = %x20-21 / %x23-5B / %x5C.22 / ; \" = " (%x22) %x5C.5C / ; \\ = \ (%x5C) %x5C.6E / ; \n = lf (%x0A) %x5C.71 / ; \r = cr (%x0D) %x5C.73 / ; \t = ht (%x09) %x5C.30-33.30-37.30-37 / ; \ooo (octal) %x5D-7E / %xC0-DF.80-BF / %xE0-EF.80-BF.80-BF / %xF0-F7.80-BF.80-BF.80-BF
Page 69 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
202203
2202
22032204
2205
2206220722082209221022112212221322142215221622172218221922202221222222232224
204
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
11. Relationship of Impressions, Pages, and SheetsThe Internet Printing Protocol/1.1: Model and Semantics [STD92] defines attributes for the impressions and media sheets in a job, the PWG Standardized Imaging System Counters 1.1 [PWG5106.1] clarifies the definitions of impressions and sheets, the Standard for the Internet Printing Protocol: Page Overrides [PWG5100.6] defines input pages for page overrides, and this specification defines new Job Description attributes to track the number and progress of input pages within the documents of a Job.
Because the various IPP and PWG standards have used slightly different definitions of impressions, pages, and sheets, and because their interaction with various Job Template attributes has not been documented, the Job Description attributes for impressions ("job-impressions" and "job-impressions-completed") and sheets ("job-media-sheets" and "job-media-sheets-completed") have not been implemented consistently between different vendors' IPP Printers. Table 25 lists the Job Template attributes that affect reporting of impressions and sheets. Only the "page-ranges" Job Template attribute affects the page counts ("job-pages" and "job-pages-completed").
11.1 Examples for Impressions, Pages, and Sheets
11.1.1 Single Document Simplex Job Without Copies
A single-document simplex job has the same number of impressions, pages, and sheets. Thus, a 10 page document will yield impression and sheet counts of 10 each.
11.1.2 Single Document Duplex Job Without Copies
A single-document duplex jobs ("sides" is "two-sided-long-edge" or "two-sided-short-edge") has the same number of impressions and pages but half as many sheets. Thus, an 11 page document will yield 11 impressions and 6 sheets - the last sheet will only have one impression on it.
11.1.3 Two Document Duplex Job With Copies, Number-Up, and Page-Ranges
A two-document duplex job with copies and number-up will have different page, impression, and sheet counts. For example, a job containing documents of 11 and 28 pages, a "copies" value of 10, a "multiple-document-handling" value of 'single-document', a "number-up" value of 6, a "page-ranges" value of 1-25, and a "sides" value of 'two-sided-long-edge' would yield a page count of 39 (11 + 28 pages from two documents), an impression count of 50 (25 6-up pages produces 5 impressions per copy), and a sheet count of 30 (5 impressions are printed on a total of 3 pages per copy). Figure 11 shows a graphical representation of this example.
Page 70 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
205206
2225
222622272228222922302231
22322233223422352236223722382239
2240
2241
22422243
2244
2245224622472248
2249
225022512252225322542255225622572258
207
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Figure 11 - Two Document Duplex Job With Copies, Number-Up, and Page-Ranges
Page 71 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
208209
2259
2260
210
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Table 25 - Job Template Attributes That Affect Impressions and Sheets
Attribute Descriptioncopies Multiplier for impressions and sheets; also
see job-copies, multiple-document-handling, and sheet-collate
cover-back For 'print-none', adds one sheet per setcover-front For 'print-none', adds one sheet per setinsert-sheet Adds N sheets for each copy and,
potentially, each document in the Jobjob-error-sheet May add one or more impressions and
sheets to the Jobjob-sheets May add one or more impressions and
sheets to the Jobmultiple-document-handling For the value 'single-document', duplex Jobs
may have a reduced number of sheets per copy when the input documents produce an odd number of impressions; also see copies, imposition-template, job-copies, and number-up
number-up Generally a divisor for impressions and sheets
overrides Can override any Job Template attribute (except overrides)
page-ranges Changes the number of input pages that are processed, thus changing the impressions and sheets accordingly
proof-print Overrides the copies and job-copies valuesseparator-sheets 'slip-sheets': adds one impression and sheet
between each set in a Job'start-sheet' and 'end-sheet': adds one impression and sheet for each set in a Job'both-sheets': adds two impressions and sheets for each set in a Job
sides For 'two-sided-long-edge' and 'two-sided-short-edge', generally makes sheets half of the number of impressions; also see copies, job-copies, multiple-document-handling, and sheet-collate
12. Printer Resource Best Practices
Page 72 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
211212
2261
2262
2263
213
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
13. Obsolete AttributesTable 26 lists the attributes that are OBSOLETE.
Table 26 - Obsolete Attributes
Attribute Explanation
pages-completed-current-copy
RFC 3381 is obsolete
pages-per-subset Redundant with "job-pages-per-set" [PWG5100.1]
pages-per-subset-supported
"pages-per-subset" has been obsoleted
14. Obsolete ValuesTable 27 lists the attribute values that are OBSOLETE.
Table 27 - Obsolete Values
Attribute Value Explanation
ipp-features-supported
'job-save' The "job-save" attribute [PWG5100.11] is obsolete.
15. Conformance RequirementsThis section summarizes the Conformance Requirements detailed in the definitions in this document for Clients and Printers.
15.1 Printer Conformance Requirements
In order for a Printer to claim conformance to this specification, a Printer MUST support:
1. The required attributes and values defined in section 6;2. The required operations defined in section 5;3. The additional semantics defined in section 7;4. The additional values defined in section 8;5. The status codes defined in section 9;6. The internationalization considerations defined in section 16; and7. The security considerations defined in section 17.
Page 73 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
214215
2264
2265
2266
2267
2268
2269
2270
22712272
2273
22742275
2276227722782279228022812282
216
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
15.2 Client Conformance Requirements
In order for a Client to claim conformance to this specification, a Client MUST support:
1. The required attributes and values defined in section 6;2. The required operations defined in section 5;3. The additional semantics defined in section 7;4. The additional values defined in section 8;5. The status codes defined in section 9;6. The internationalization considerations defined in section 16; and7. The security considerations defined in section 17.
15.3 HTTP Recommendations
In order to support efficient retrieval of printer icons, ICC profiles, and localization files, Clients SHOULD provide and Printers SHOULD support the If-Modified-Since request header [RFC7232] to allow Clients to locally cache these resources to minimize network bandwidth usage and provide a responsive user interface. HTTP caching semantics [RFC7234], particularly with HTTP proxies [RFC7230] MUST be followed.
16. Internationalization ConsiderationsFor interoperability and basic support for multiple languages, conforming implementations MUST support:
1. The Universal Character Set (UCS) Transformation Format -- 8 bit (UTF-8) [STD63] encoding of Unicode [UNICODE] [ISO10646]; and
2. The Unicode Format for Network Interchange [RFC5198] which requires transmission of well-formed UTF-8 strings and recommends transmission of normalized UTF-8 strings in Normalization Form C (NFC) [UAX15].
Unicode NFC is defined as the result of performing Canonical Decomposition (into base characters and combining marks) followed by Canonical Composition (into canonical composed characters wherever Unicode has assigned them).
WARNING – Performing normalization on UTF-8 strings received from Clients and subsequently storing the results (e.g., in Job objects) could cause false negatives in Client searches and failed access (e.g., to Printers with percent-encoded UTF-8 URIs now 'hidden').
Implementations of this specification SHOULD conform to the following standards on processing of human-readable Unicode text strings, see:
Unicode Bidirectional Algorithm [UAX9] – left-to-right, right-to-left, and vertical
Unicode Line Breaking Algorithm [UAX14] – character classes and wrapping
Page 74 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
217218
2283
2284
2285228622872288228922902291
2292
22932294229522962297
2298
22992300
23012302230323042305
230623072308
2309231023112312
23132314
2315
2316
219
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Unicode Normalization Forms [UAX15] – especially NFC for [RFC5198]
Unicode Text Segmentation [UAX29] – grapheme clusters, words, sentences
Unicode Identifier and Pattern Syntax [UAX31] – identifier use and normalization
Unicode Collation Algorithm [UTS10] – sorting
Unicode Locale Data Markup Language [UTS35] – locale databases
Implementations of this specification are advised to also review the following informational documents on processing of human-readable Unicode text strings:
Unicode Character Encoding Model [UTR17] – multi-layer character model
Unicode Character Property Model [UTR23] – character properties
Unicode Conformance Model [UTR33] – Unicode conformance basis
17. Security ConsiderationsThe IPP extensions defined in this document require the same security considerations as defined in the Internet Printing Protocol/1.1 [STD92].
Implementations of this specification SHOULD conform to the following standard on processing of human-readable Unicode text strings, see:
Unicode Security Mechanisms [UTS39] – detecting and avoiding security attacks
Implementations of this specification are advised to also review the following informational document on processing of human-readable Unicode text strings:
Unicode Security FAQ [UNISECFAQ] – common Unicode security issues
17.1 Security Considerations for the "document-password" Attribute
The "document-password" operation attribute (section 6.1.2) MUST be treated as private and confidential, MUST be retained for as long as the corresponding Job and Document are retained, MUST NOT be persisted beyond the life of the Job or Document, and MUST NOT be returned to Clients in any IPP response.
18. IANA Considerations
18.1 MIME Media Type Registration
Name : Michael Sweet
Page 75 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2202212317
2318
2319
2320
2321
23222323
2324
2325
2326
2327
23282329
23302331
2332
23332334
2335
2336
2337233823392340
2341
2342
2343
222
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
E-mail : msweet@apple.com
MIME media type name : text
MIME subtype name : Standards Tree – strings
Required parameters : NONE
Optional parameters : NONE
Encoding considerations :
UTF-8 encoded Unicode text.
Security considerations :
Localized strings may be arbitrarily large and could potentially cause a denial-of-service.
Localized strings may contain printf-style format characters that could cause a program to display unintended information or crash.
Interoperability considerations :
NONE
Published specification :
https://ftp.pwg.org/pub/pwg/candidates/cs-ippjobprinterext3v10-20120727-5100.13.pdf
Applications which use this media :
All Cocoa, NeXTStep, and OpenStep applicationsCUPSIPP Everywhere
Additional information :
1. Magic number(s) :
2. File extension(s) :
strings
3. Macintosh file type code :
Person to contact for further information :
1. Name : Michael Sweet
Page 76 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2232242344
2345
2346
2347
2348
2349
2350
2351
23522353
23542355
2356
2357
2358
2359
2360
236123622363
2364
2365
2366
2367
2368
2369
2370
225
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
2. E-mail : msweet@apple.com
Intended usage : Common
Used for providing localizations of English keywords and numeric values.
Author/Change controller :
The Printer Working Groupc/o The IEEE Industry Standards and Technology Organization445 Hoes LanePiscataway, NJ 08854USA
18.2 Attribute Registrations
The attributes defined in this specification will be published by IANA according to the procedures in the Internet Printing Protocol/1.1 [STD92] in the following file:
http://www.iana.org/assignments/ipp-registrations
The registry entries will contain the following information:
Operation attributes: Reference-------------------- ---------document-metadata (1setOf octetString(MAX)) [PWG5100.13]document-password (octetString(1023)) [PWG5100.13]first-index (integer(1:MAX)) [PWG5100.13]identify-actions (1setOf type2 keyword) [PWG5100.13]preferred-attributes (collection) [PWG5100.13] <Any Template attribute> [PWG5100.13]requesting-user-uri (uri) [PWG5100.13]
Job Template attributes: Reference----------------------- ---------job-error-action (type2 keyword) [PWG5100.13]pages-per-subset (1setOf integer(1:MAX)) [PWG5100.13]print-color-mode (type2 keyword) [PWG5100.13]print-rendering-intent (type2 keyword) [PWG5100.13]
Job Description attributes: Reference-------------------------- ---------document-metadata (1setOf octetString(MAX)) [PWG5100.13]job-originating-user-uri (uri) [PWG5100.13]job-pages (integer(0:MAX) [PWG5100.13]job-pages-completed (integer(0:MAX) [PWG5100.13]job-pages-completed-current-copy (integer(0:MAX) [PWG5100.13]job-uuid (uri(45)) [PWG5100.13]
Document Template attributes: Reference----------------------- ---------print-color-mode (type2 keyword) [PWG5100.13]
Page 77 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2262272371
2372
2373
2374
23752376237723782379
2380
23812382
2383
2384
23852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413
228
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
print-rendering-intent (type2 keyword) [PWG5100.13]
Document Description attributes: Reference-------------------------- ---------document-metadata (1setOf octetString(MAX)) [PWG5100.13]document-uuid (uri(45)) [PWG5100.13]pages (integer(0:MAX) [PWG5100.13]pages-completed (integer(0:MAX) [PWG5100.13]pages-completed-current-copy (integer(0:MAX) [PWG5100.13]
Printer Description attributes: Reference------------------------------ ---------device-service-count (integer(1:MAX)) [PWG5100.13]device-uuid (uri(45)) [PWG5100.13]document-password-supported (integer(0:1023)) [PWG5100.13]identify-actions-default (1setOf type2 keyword) [PWG5100.13]identify-actions-supported (1setOf type2 keyword) [PWG5100.13]ipp-features-supported (1setOf type2 keyword) [PWG5100.13]job-constraints-supported (1setOf collection) [PWG5100.13]job-error-action-default (type2 keyword) [PWG5100.13]job-error-action-supported (1setOf type2 keyword) [PWG5100.13]job-resolvers-supported (1setOf collection) [PWG5100.13]multiple-operation-time-out-action (type2 keyword) [PWG5100.13]pages-per-subset-supported (boolean) [PWG5100.13]preferred-attributes-supported (boolean) [PWG5100.13]print-color-mode-default (type2 keyword) [PWG5100.13]print-color-mode-supported (1setOf type2 keyword) [PWG5100.13]print-rendering-intent-default (type2 keyword) [PWG5100.13]print-rendering-intent-supported (1setOf type2 keyword) [PWG5100.13]printer-charge-info (text(MAX)) [PWG5100.13]printer-charge-info-uri (uri) [PWG5100.13]printer-geo-location (uri) [PWG5100.13]printer-get-attributes-supported (1setOf type2 keyword) [PWG5100.13]printer-icc-profiles (1setOf collection) [PWG5100.13] <Any Template attribute> [PWG5100.13] profile-name (name(MAX)) [PWG5100.13] profile-url (uri) [PWG5100.13]printer-icons (1setOf uri) [PWG5100.13]printer-mandatory-job-attributes (1setOf type2 keyword) [PWG5100.13]printer-organization (1setOf text(MAX)) [PWG5100.13]printer-organizational-unit (1setOf text(MAX)) [PWG5100.13]printer-supply (1setOf octetString(MAX)) [PWG5100.13]printer-supply-description (1setOf text(MAX)) [PWG5100.13]printer-supply-info-uri (uri) [PWG5100.13]printer-uuid (uri(45)) [PWG5100.13]requesting-user-uri-supported (boolean) [PWG5100.13]
Subscription Description attributes: Reference----------------------------------- ---------notify-subscriber-user-uri (uri) [PWG5100.13]notify-subscription-uuid (uri) [PWG5100.13]
Page 78 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2292302414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465
231
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
18.3 Type2 keyword Registrations
The keyword values defined in this specification will be published by IANA according to the procedures in the Internet Printing Protocol/1.1 [STD92] in the following file:
http://www.iana.org/assignments/ipp-registrations
The registry entries will contain the following information:
Attributes (attribute syntax) Keyword Attribute Value Reference ----------------------- ---------document-state-reasons (1setOf type2 keyword) [PWG5100.5] document-password-error [PWG5100.13] document-permission-error [PWG5100.13] document-security-error [PWG5100.13] document-unprintable-error [PWG5100.13]
identify-actions (1setOf type2 keyword) [PWG5100.13] display [PWG5100.13] flash [PWG5100.13] sound [PWG5100.13] speak [PWG5100.13]identify-actions-default (1setOf type2 keyword) [PWG5100.13] <Any "identify-actions" keyword value> [PWG5100.13]identify-actions-supported (1setOf type2 keyword) [PWG5100.13] <Any "identify-actions" keyword value> [PWG5100.13]ipp-features-supported (1setOf type2 keyword) [PWG5100.13] document-object [PWG5100.13] job-save [PWG5100.13] none [PWG5100.13] page-overrides [PWG5100.13] proof-print [PWG5100.13] subscription-object [PWG5100.13]
job-error-action (type2 keyword) [PWG5100.13] abort-job [PWG5100.13] cancel-job [PWG5100.13] continue-job [PWG5100.13] suspend-job [PWG5100.13]job-error-action-default (type2 keyword) [PWG5100.13] <Any "job-error-action" keyword value> [PWG5100.13]job-error-action-supported (1setOf type2 keyword) [PWG5100.13] <Any "job-error-action" keyword value> [PWG5100.13]
job-state-reasons (1setOf type2 keyword) [RFC8011] document-password-error [PWG5100.13] document-permission-error [PWG5100.13] document-security-error [PWG5100.13] document-unprintable-error [PWG5100.13]
multiple-operation-time-out-action (type2 keyword) [PWG5100.13] abort-job [PWG5100.13] hold-job [PWG5100.13]
Page 79 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
232233
2466
24672468
2469
2470
247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515
234
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
process-job [PWG5100.13]
print-color-mode (type2 keyword) [PWG5100.13] auto [PWG5100.13] auto-monochrome [PWG5100.13] bi-level [PWG5100.13] color [PWG5100.13] highlight [PWG5100.13] monochrome [PWG5100.13] process-bi-level [PWG5100.13] process-monochrome [PWG5100.13]print-color-mode-default (type2 keyword) [PWG5100.13] <Any "print-color-mode" keyword value> [PWG5100.13]print-color-mode-supported (1setOf type2 keyword) [PWG5100.13] <Any "print-color-mode" keyword value> [PWG5100.13]
print-content-optimize (type2 keyword) [PWG5100.7] auto [PWG5100.13]
print-rendering-intent (type2 keyword) [PWG5100.13] absolute [PWG5100.13] auto [PWG5100.13] perceptual [PWG5100.13] relative [PWG5100.13] relative-bpc [PWG5100.13] saturation [PWG5100.13]print-rendering-intent-default (type2 keyword) [PWG5100.13] <Any "print-rendering-intent" keyword value> [PWG5100.13]print-rendering-intent-supported (1setOf type2 keyword) [PWG5100.13] <Any "print-rendering-intent" keyword value> [PWG5100.13]
printer-get-attributes-supported (1setOf type2 keyword) [PWG5100.13] <Any Job Template attribute> <Any Operation attribute at the job level>
printer-mandatory-job-attributes (1setOf type2 keyword) [PWG5100.13] <Any Job Template attribute> <Any Operation attribute at the job level>
printer-state-reasons (1setOf type2 keyword) [RFC8011] cleaner-life-almost-over [PWG5100.13] cleaner-life-over [PWG5100.13]
uri-authentication-supported (1setOf type2 keyword) [RFC8011] negotiate [PWG5100.13]
18.4 Type2 enum Registrations
The enum values defined in this specification will be published by IANA according to the procedures in the Internet Printing Protocol/1.1 [STD92] in the following file:
http://www.iana.org/assignments/ipp-registrations
The registry entries will contain the following information:
Page 80 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
235236251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560
2561
25622563
2564
2565
237
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Attributes (attribute syntax) Enum Value Enum Symbolic Name Reference ---------- ------------------ ---------finishings (1setOf type2 enum) [RFC8011] 60 trim-after-pages [PWG5100.13] 61 trim-after-documents [PWG5100.13] 62 trim-after-copies [PWG5100.13] 63 trim-after-job [PWG5100.13]
operations-supported (1setOf type2 enum) [RFC8011] 0x003C Identify-Printer [PWG5100.13] 0x003D Validate-Document [PWG5100.13]
orientation-requested (type2 enum) [RFC8011] 7 none [PWG5100.13]
18.5 Operation Registrations
The operations defined in this specification will be published by IANA according to the procedures in the Internet Printing Protocol/1.1 [STD92] in the following file:
http://www.iana.org/assignments/ipp-registrations
The registry entries will contain the following information:
Operation Name Reference-------------- ---------Create-Job (extension) [PWG5100.13]Create-Job-Subscription (extension) [PWG5100.13]Create-Printer-Subscription (extension) [PWG5100.13]Get-Documents (extension) [PWG5100.13]Get-Jobs (extension) [PWG5100.13]Get-Printer-Attributes (extension) [PWG5100.13]Get-Subscriptions (extension) [PWG5100.13]Identify-Printer [PWG5100.13]Print-Job (extension) [PWG5100.13]Print-URI (extension) [PWG5100.13]Send-Document (extension) [PWG5100.13]Send-URI (extension) [PWG5100.13]Validate-Document [PWG5100.13]Validate-Job (extension) [PWG5100.13]
18.6 Status Code Registrations
The status codes defined in this specification will be published by IANA according to the procedures in the Internet Printing Protocol/1.1 [STD92] in the following file:
http://www.iana.org/assignments/ipp-registrations
The registry entries will contain the following information:
Value Status Code Name Reference
Page 81 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
238239256625672568256925702571257225732574257525762577257825792580
2581
25822583
2584
2585
2586258725882589259025912592259325942595259625972598259926002601
2602
26032604
2605
2606
2607
240
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
------ --------------------------------------------- ---------0x0400:0x04FF - Client Error:0x0418 client-error-document-password-error [PWG5100.13]0x0419 client-error-document-permission-error [PWG5100.13]0x041A client-error-document-security-error [PWG5100.13]0x041B client-error-document-unprintable-error [PWG5100.13]
19. Overview of Changes
19.1 IPP Driverless Printing Extensions v.2.0
The following changes were made to IPP Job and Printer Extensions - Set 3 [PWG5100.13-2012]:
Renamed the specification to have a more specific and meaningful title
Resolved all errata from PWG errata tracking site (https://www.pwg.org/dynamo/issues.php?L+P-1+S-2+I0+E0+Z13+Q)
Added message catalog syntax extensions and semantics for "_tooltip" and "_helpurl" (content from the latest draft of HELPME)
Added extensions to "print-color-mode" and "print-quality" (content from the latest draft of PQI)
Added "print-color-mode-icc-profiles" and "print-quality-hints-supported" (content from the latest draft of PQI)
Added the "media-overprint" and "media-overprint-type" Job Template Attributes
The "subscription-uuid" attribute was renamed "notify-subscription-uuid" to match how it was registered in the IANA registry in 2012
Moved the definition of the 'proof-print' keyword for "ipp-features-supported" to IPP Enterprise Printing Extensions [IPPEPX]
The "multiple-operations-timeout-action" attribute's name was modified to "multiple-operations-time-out-action" to match how it was registered in the IANA registry in 2012
Deprecated the "device-service-count" attribute because IPP System Service provides a better solution and this attribute is almost entirely unused in the IPP ecosystem at large
Page 82 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
241242260826092610261126122613
2614
2615
26162617
2618
26192620
26212622
26232624
26252626
2627
26282629
26302631
263226332634
263526362637
243
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
20. References
20.1 Normative References
[BCP14] S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119/BCP 14, March 1997, https://tools.ietf.org/html/bcp14
[DCMITERMS] "DCMI Metadata Terms", October 2010, http://dublincore.org/documents/dcmi-terms/
[IANAPRT] IANA Printer MIB, Internet Assigned Numbers Authority, July 2019, https://www.iana.org/assignments/ianaprinter-mib/ianaprinter-mib
[IANA-PEN] "Private Enterprise Numbers - SMI Network Management Private Enterprise Codes", Internet Assigned Numbers Authority (IANA), https://www.iana.org/assignments/enterprise-numbers/
[ISO10646] "Information technology -- Universal Coded Character Set (UCS)", ISO/IEC 10646:2011
[ISO15076-1] "Image technology colour management — Architecture, profile format and data structure — Part 1: Based on ICC.1:2010", ISO/IEC 15076-1:2010
[JPS3ABNF] M. Sweet, I. McDonald, P. Zehler, "ABNF for IPP Job and Printer Extensions Set 3", https://ftp.pwg.org/pub/pwg/informational/pwg5100.13-abnf-20190708.txt
[PWG5100.2] Hastings, T. and R. Bergman, "Internet Printing Protocol (IPP): "output-bin" attribute extension", February 2001, https://ftp.pwg.org/pub/pwg/candidates/cs-ippoutputbin10-20010207-5100.2.pdf
[PWG5100.3] K. Ocke, T. Hastings, "Internet Printing Protocol (IPP): Production Printing Attributes – Set1", PWG 5100.3-2001, February 2001, https://ftp.pwg.org/pub/pwg/candidates/cs-ippprodprint10-20010212-5100.3.pdf
[PWG5100.5] D. Carney, T. Hastings, P. Zehler, "Standard for The Internet Printing Protocol (IPP): Document Object", PWG 5100.5-2003, October 2003, https://ftp.pwg.org/pub/pwg/candidates/cs-ippdocobject10-20031031-5100.5.pdf
[PWG5100.6] P. Zehler, R. Herriot, K. Ocke, "Internet Printing Protocol: Page Overrides", PWG 5100.6, October 2003, https://ftp.pwg.org/pub/pwg/candidates/cs-ipppageoverride10-20031031-5100.6.pdf
[PWG5100.7] M.Sweet, "IPP Job Extensions v2.0", August 2019, https://ftp.pwg.org/pub/pwg/candidates/cs-ippjobext20-20190816-5100.7.pdf
Page 83 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
244245
2638
2639
26402641
26422643
26442645
264626472648
26492650
26512652
265326542655
265626572658
265926602661
266226632664
266526662667
26682669
246
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
[PWG5100.12] R. Bergman, H. Lewis, I. McDonald, M. Sweet, "IPP Version 2.0, 2.1, and 2.2", PWG 5100.12-2015, October 2015, https://ftp.pwg.org/pub/pwg/standards/std-ipp20-20151030-5100.12.pdf
[PWG5101.1] R. Bergman, T. Hastings, "Standard for Media Standardized Names 2.0", PWG 5101.1-2013, March 2013, https://ftp.pwg.org/pub/pwg/candidates/cs-pwgmsn20-20130328-5101.1.pdf
[PWG5106.1] P. Zehler, H. Lewis, I. McDonald, J. Thrasher, W. Wagner, "PWG Standardized Imaging System Counters 1.1", PWG 5106.1-2007, April 2007, https://ftp.pwg.org/pub/pwg/candidates/cs-wimscount11-20070427-5106.1.pdf
[RFC2083] T. Boutell, "PNG (Portable Network Graphics) Specification Version 1.0", RFC 2083, March 1997, https://tools.ietf.org/html/rfc2083
[RFC2817] R. Khare, S. Lawrence, “Upgrading to TLS Within HTTP/1.1”, RFC 2817, May 2000, https://tools.ietf.org/html/rfc2817
[RFC3382] R. deBry, R. Herriot, T. Hastings, K. Ocke, P. Zehler, "Internet Printing Protocol (IPP): The 'collection' attribute syntax", RFC 3382, September 2002, https://tools.ietf.org/html/rfc3382
[RFC3805] R. Bergman, H. Lewis, I. McDonald, "Printer MIB v2", RFC 3805, June 2004, https://tools.ietf.org/html/rfc3805
[RFC3808] I. McDonald, "IANA Charset MIB", RFC 3808, June 2004, https://tools.ietf.org/html/rfc3808
[RFC3995] R. Herriot, T. Hastings, "IPP Event Notifications and Subscriptions", RFC 3995, March 2005, https://tools.ietf.org/html/rfc3955
[RFC3998] C. Kugler, T. Hastings, H. Lewis, "IPP: Job and Printer Operations", RFC 3998, March 2005, https://tools.ietf.org/html/rfc3998
[RFC4122] P. Leach, M. Mealling, R. Salz, "A Universally Unique IDentifier (UUID) URN Namespace", RFC 4122, July 2005, https://tools.ietf.org/html/rfc4122
[RFC4519] A. Sciberras, "Lightweight Directory Access Protocol (LDAP): Schema for User Applications", RFC 4519, June 2006, https://tools.ietf.org/html/rfc4519
[RFC4559] K. Jaganathan, L. Zhu, J. Brezak, “SPNEGO-based Kerberos and NTLM HTTP Authentication in Microsoft Windows”, RFC 4559, June 2006, https://tools.ietf.org/html/rfc4559
[RFC5013] J. Kunze, T. Baker, "The Dublin Core Metadata Element Set", RFC 5013, August 2007, https://tools.ietf.org/html/rfc5013
Page 84 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
247248267026712672
267326742675
267626772678
26792680
26812682
268326842685
26862687
26882689
26902691
26922693
26942695
26962697
269826992700
27012702
249
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
[RFC5198] J. Klensin, M. Padlipsky, "Unicode Format for Network Interchange", RFC 5198, March 2008, https://tools.ietf.org/html/rfc5198
[RFC5646] A. Phillips, M. Davis, "Tags for Identifying Languages", September 2009, https://tools.ietf.org/html/rfc5646
[RFC5870] A. Mayrhofer, C. Spanring, "A Uniform Resource Identifier for Geographic Locations ('geo' URI)", RFC 5870, June 2010, https://tools.ietf.org/html/rfc5870
[RFC6068] M. Duerst, L. Masinter, J. Zawinski, "The 'mailto' URI Scheme", RFC 6068, October 2010, https://tools.ietf.org/html/rfc6068
[RFC7230] R. Fielding, J. Reschke, "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing", RFC 7230, June 2014, https://tools.ietf.org/html/rfc7230
[RFC7232] R. Fielding, J. Reschke, "Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests", RFC 7232, June 2014, https://tools.ietf.org/html/rfc7232
[RFC7234] R. Fielding, M. Nottingham, J. Reschke, "Hypertext Transfer Protocol (HTTP/1.1): Caching", RFC 7234, June 2014, https://tools.ietf.org/html/rfc7234
[RFC8446] E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, August 2018, https://tools.ietf.org/html/rfc8446
[STD63] F. Yergeau, "UTF-8, a transformation format of ISO 10646", RFC 3629/STD 63, November 2003, https://tools.ietf.org/html/std63
[STD66] T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", RFC 3986/STD 66, January 2005, https://tools.ietf.org/html/std66
[STD68] D. Crocker, P. Overell, “Augmented BNF for Syntax Specifications: ABNF”, RFC 5234/STD 68, January 2008, https://tools.ietf.org/html/std68
[STD92] M. Sweet, I. McDonald, "Internet Printing Protocol/1.1", STD 92, June 2018, https://tools.ietf.org/html/std92
[UAX9] Unicode Consortium, “Unicode Bidirectional Algorithm”, UAX#9, May 2018, https://www.unicode.org/reports/tr9
[UAX14] Unicode Consortium, “Unicode Line Breaking Algorithm”, UAX#14, May 2018, https://www.unicode.org/reports/tr14
[UAX15] M. Davis, M. Duerst, "Unicode Normalization Forms", Unicode Standard Annex 15, May 2018, https://www.unicode.org/reports/tr15
[UAX29] Unicode Consortium, “Unicode Text Segmentation”, UAX#29, May 2018, https://www.unicode.org/reports/tr29
Page 85 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
25025127032704
27052706
270727082709
27102711
27122713
27142715
27162717
27182719
27202721
27222723
27242725
27262727
27282729
27302731
27322733
27342735
252
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
[UAX31] Unicode Consortium, “Unicode Identifier and Pattern Syntax”, UAX#31, June 2018, https://www.unicode.org/reports/tr31
[UNICODE] Unicode Consortium, "Unicode Standard", Version 11.0.0, June 2018, https://www.unicode.org/versions/Unicode11.0.0/
[UTS10] Unicode Consortium, “Unicode Collation Algorithm”, UTS#10, May 2018, https://www.unicode.org/reports/tr10
[UTS35] Unicode Consortium, “Unicode Locale Data Markup Language”, UTS#35, March 2018, https://www.unicode.org/reports/tr35
[UTS39] Unicode Consortium, “Unicode Security Mechanisms”, UTS#39, May 2018, https://www.unicode.org/reports/tr39
[WGS84] National Geospatial-Intelligence Agency, "Department of Defense World Geodetic System 1984, Its Definition and Relationships With Local Geodetic Systems, Third Edition", NIMA Technical Report TR8350.2, January 2000, http://earth-info.nga.mil/GandG/publications/tr8350.2/wgs84fin.pdf
[X.520] International Telecommunication Union, "Information technology - Open Systems Interconnection - The Directory: Selected attribute types", ITU-T X.520, November 2008
20.2 Informative References
[ECMA388] "Open XML Paper Specification", June 2009, Standard ECMA-388, https://www.ecma-international.org/publications/standards/Ecma-388.htm
[ISO32000] "Document management — Portable document format — Part 1: PDF 1.7", ISO 32000-1:2008, https://www.iso.org/standard/51502.html
[IPPSAMPLE] PWG "ippsample" Software Project, http://istopwg.github.io/ippsample
[MACOS] macOS Operating System, Apple Inc., https://www.apple.com/
[NEXTSTEP] NeXTSTEP Operating System, Apple Inc., https://en.wikipedia.org/wiki/NeXTSTEP
[RFC4559] K. Jaganathan, L. Zhu, J. Brezak, "SPNEGO-based Kerberos and NTLM HTTP Authentication in Microsoft Windows", RFC 4559, June 2006, https://tools.ietf.org/html/rfc4559
[PWG-CATALOG] Sample English localization of registered IPP attributes and values, https://ftp.pwg.org/pub/pwg/ipp/examples/ipp.strings
Page 86 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
25325427362737
27382739
27402741
27422743
27442745
2746274727482749
275027512752
2753
27542755
27562757
2758
2759
27602761
276227632764
27652766
255
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
[PWG5100.1] S. Kennedy, M. Sweet, "IPP Finishings 2.1", PWG 5100.1-2017, February 2017, https://ftp.pwg.org/pub/pwg/candidates/cs-ippfinishings21-20170217-5100.1.pdf
[PWG5100.11] T. Hastings, D. Fullman, "IPP: Job and Printer Operations - Set 2", PWG 5100.11-2010, October 2010, https://ftp.pwg.org/pub/pwg/candidates/cs-ippjobprinterext10-20101030-5100.11.pdf
[PWG5100.13-2012] M. Sweet, I. McDonald, "IPP: Job and Printer Extensions - Set 3 (JPS3)", PWG 5100.13-2012, July 2012, https://ftp.pwg.org/pub/pwg/candidates/cs-ippjobprinterext3v10-20120727-5100.13.pdf
[PWG5100.14] M. Sweet, I. McDonald, A. Mitchell, J. Hutchings, "IPP Everywhere", 5100.14-2013, January 2013, https://ftp.pwg.org/pub/pwg/candidates/cs-ippeve10-20130128-5100.14.pdf
[UTR17] Unicode Consortium “Unicode Character Encoding Model”, UTR#17, November 2008, https://www.unicode.org/reports/tr17
[UTR23] Unicode Consortium “Unicode Character Property Model”, UTR#23, May 2015, https://www.unicode.org/reports/tr23
[UTR33] Unicode Consortium “Unicode Conformance Model”, UTR#33, November 2008, https://www.unicode.org/reports/tr33
[UNISECFAQ] Unicode Consortium “Unicode Security FAQ”, November 2013,https://www.unicode.org/faq/security.html
21. Authors' AddressesPrimary authors (v2.0):
Smith KennedyHP Inc.11311 Chinden Blvd.Boise ID 83714
Primary authors (v1.0):
Michael SweetApple Inc.10431 N. De Anza Blvd.MS 38-4LPTCupertino CA 95014
Ira McDonaldHigh North
Page 87 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
256257276727682769
277027712772
277327742775
277627772778
27792780
27812782
27832784
27852786
2787
2788
2789279027912792
2793
27942795279627972798279928002801
258
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
PO Box 221Grand Marais, MI 49839
Peter ZehlerXerox Corporation800 Phillips RoadM/S 128-25EWebster, NY 14580-9701
Send comments to the PWG IPP Mailing List:
ipp@pwg.org (subscribers only)
To subscribe, see the PWG IPP workgroup web page:
https://www.pwg.org/ipp/
Implementers of this specification document are encouraged to join the IPP Mailing List in order to participate in any discussions of clarification issues and review of registration proposals for additional attributes and values.
The authors would also like to thank the following individuals for their contributions to this specification:
Robert Herriot - XeroxAndrew Mitchell - Hewlett PackardKirk Ocke - Xerox
22. Change History
22.1 November 21, 2019
Updated yet again to address a few more issues:
Added the 'virtual' keyword for "media-source" as per IPP teleconference minutes from 20191107
Added 'enterprise' and 'production' keywords to "ipp-features-supported" as per 20190828 IPP F2F minutes
Removed comments that should have been removed following their approval in earlier reviews.
22.2 November 20, 2019
Updated to resolve a few minor issues:
Page 88 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
25926028022803280428052806280728082809
2810
2811
2812
2813
281428152816
28172818
281928202821
2822
2823
2824
28252826
28272828
28292830
2831
2832
261
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Added the "eliminate-margins-supported" Printer Description attribute and listed it in Table 13
Resolved text formatting problems in Table 4
Removed "pages-per-subset" since it has been obsoleted.
22.3 October 3, 2019
Updated to resolve all issues from August 1, 2019 conference call and August 2019 F2F reviews:
Resolved all errata comments
Renamed "soft-proof-icc-profiles" to "print-color-mode-icc-profiles" but chose alternate member attribute names
Refactored tables for "printer-input-tray", "printer-output-tray" and "printer-supply" to make them easier to read and reference / cross-reference with RFC 3805, and spell checked all OID names to hopefully eliminate all typos that were in the old 5100.13
Added conformance tables to all section 6 subsections.
Created a new section 12 "Printer Resource Best Practices" from old section 14.4 and referenced that for HTTP and URI best practices
Refactored and updated the Conformance Requirements section
Added "eliminate-margins" to support the "Eliminate Upper and Lower Margins" and "Banner printing" use cases requested by Canon and HP
Added "media-overprint" to support the "Borderless adjustment setting" use case requested by Canon and HP
Enhanced the description for "print-quality-hints-supported"
22.4 July 24, 2019
Copied in definitions for "soft-proof-icc-profiles" and "print-quality-hints-supported" and extensions for "print-color-mode" and "print-quality" (from the latest draft of PQI). Also resolved the following feedback from Mike Sweet's email to the IPP WG reflector:
Drop "-5100.13" from the filename (that's just for published documents)
Global: remove section references for all of the STD92 stuff (which would have been RFC2911 sections - they don't match up
Page 89 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
26226328332834
2835
2836
2837
28382839
2840
28412842
284328442845
2846
28472848
2849
28502851
28522853
2854
2855
285628572858
2859
28602861
264
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Global: fix "reference not found" issues (section 5.6.7 at least)
I think much of the 1.x content should be moved to a new section 4 model, with the new operations starting in section 5 (in keeping with our current template)
pages-per-subset should be deprecated, per our prior discussions on the subject (finishings 2.1 has the job-pages-per-set attribute)
Might as well add the "auto-monochrome" value for print-color-mode as RECOMMENDED.
Section 5.3 attributes that are READ-ONLY should be moved to a new Job Status Attributes section.
Section 5.4 should be "Subscription Status Attributes"
Section 5.5 attributes that are READ-ONLY should be moved to a new Document Status Attributes section.
Section 5.5.3 (pages) attribute is READ-WRITE (Document Description), per prior registry correction
Section 5.5.5 (pages-completed-current-copy) should be obsoleted since RFC 3381 has been obsoleted
Section 5.6 attributes that are READ-ONLY should be moved to a new Printer Status Attributes section.
Section 5.6.7, table 5: obsolete "job-save" since that spec is getting obsoleted, move "proof-print" to the new EPX spec? - Section 5.6.8: The examples seem to have a mix of quote styles, maybe "1setOf syntax" instead of "1setOf <type-def- for-job-template-attribute>"
Global: Remove all of the media-xxx attributes since those are part of Job Extensions v2.0
Section 5.6.17, table 6: fix title ("multiple-operation-time-out-action")
Section 5.6.18: Obsolete
Section 5.6.29 (printer-get-attributes-supported): Drop 'type2'
Section 5.6.33 (printer-mandatory-job-attributes): Drop 'type2'
Section 5.6.39.4 example should probably be expanded to include yellow and black (to be realistic), along with a wasteToner or wasteInk entry?
Section 5.6.40.2 sync up with printer-supply example changes
Page 90 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2652662862
28632864
28652866
28672868
28692870
2871
28722873
28742875
28762877
28782879
2880288128822883
28842885
2886
2887
2888
2889
28902891
2892
267
Working Draft – IPP Driverless Printing Extensions v2.0 (NODRIVER) November 21, 2019
Section 6.10: Remove (all media-col stuff is in JOBEXT 2.0)
Section 7.2: Remove? I think these are now defined in Finishings 2.1?
Sections 7.6 and 7.7: Remove (all media-col stuff is in JOBEXT 2.0)
Section 9.1: Example on lines 1878 to 1881 uses left/right quotes instead of straight quotes
Section 10: Might want to wordsmith this now that STD92 has clarified things? Line 1985 also has a typo ("page-range" instead of "page-ranges").
Table 15: Remove (obsolete) job-cover-back and job-cover-front attributes, change "pages-ranges" to "page-ranges", remove (obsolete) sheet-collate,
Section 11.2: "printer-config-change-time" (not printer-description-change-time), remove media-xxx references.
Global: Update RFC2616 references to the corresponding new RFC723x RFCs...
Section 16: Drop "using Address style", you should be listed as primary author, move/update others as appropriate
References to PWG 5100.11 were left largely unchanged because it and related documents are in a state of flux.
22.5 July 10, 2019
Initial revision for v1.1.
Copied all content from previous JPS3 MS Word document into latest template
Resolved all errata from PWG errata tracking site (https://www.pwg.org/dynamo/issues.php?L+P-1+S-2+I0+E0+Z13+Q)
Copied in message catalog syntax extensions and semantics for "_tooltip" and "_helpurl" from the latest draft of HELPME
Copied in extensions for "print-color-mode", "print-quality", from the latest draft of PQI
Page 91 of 91 Copyright © 2012-2019 The Printer Working Group. All rights reserved.
2682692893
2894
2895
28962897
28982899
29002901
29022903
2904
29052906
29072908
2909
2910
2911
29122913
29142915
29162917
270
Recommended