253
® The Printer Working Group February 14, 2019 Working Draft IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) Status: Initial Interim Abstract: This IPP Job and Printer Extensions – Set 2 v2.0 Specification (JPS2) specification defines extension extensions to IPP/1.1 [STD92]. This JPS2 defines IPP additions to support the Job Proof Print Feature, the Job Save and Reprint Storage Feature, Job passwords and processing control, and a collection of and the (deprecated) Job Save feature. It also defines some other attributes extensions to IPP to support various use cases authenticated release workflows . This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see: http://ftp.pwg.org/pub/pwg/general/pwg-process30.pdf http://ftp.pwg.org/pub/pwg/general/pwg-process30.pdf Copyright © 2018 The Printer Working Group. All rights reserved. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

  • Upload
    vuquynh

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

®The Printer Working Group

February 14, 2019August 30, 2018Working Draft

IPP Job and Printer Extensions – Set 2 v2.0(JPS2)

Status: InitialInterim

Abstract: This IPP Job and Printer Extensions – Set 2 v2.0 Specification (JPS2)specification defines extensionextensions to IPP/1.1 [STD92]. This JPS2 defines IPP additions to support the Job Proof Print Feature, the Job Save and ReprintStorage Feature, Job passwords and processing control, and a collection ofand the (deprecated) Job Save feature. It also defines some other attributesextensions to IPP to support various use casesauthenticated release workflows.

This document is a PWG Working Draft. For a definition of a "PWG Working Draft", see:

http://ftp.pwg.org/pub/pwg/general/pwg-process30.pdf

http://ftp.pwg.org/pub/pwg/general/pwg-process30.pdf

This document is available electronically at:

https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext2v20-20180904.docxhttps://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext2v20-20180904.pdf

Copyright © 2018 The Printer Working Group. All rights reserved.

12345678910

11

12

13

14

15

161718192021

22

23

24

25

2627

Page 2: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

®The Printer Working Group

February 14, 2019August 30,2018February 14, 2019

Working Draft

https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext2v20-20190214.docxhttps://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext2v20-20190214.pdfhttps://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext2v20-20190214-rev.docxhttps://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext2v20-20190214-rev.pdf

Copyright © 2018-2019 The Printer Working Group. All rights reserved.

28293031

Page 3: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Copyright © 2018-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 Job and Printer Extensions – Set 2 v2.0 (JPS2)

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: [email protected].

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 3 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

12

32

33343536373839

40

414243

444546

4748495051

52535455565758

59606162

63646566

3

Page 4: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 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/ http://www.ieee.org/ ) and the IEEE Standards Association (http://standards.ieee.org/) http://standards.ieee.org/) .

For additional information regarding the IEEE-ISTO and its industry programs visit:

http://www.ieee-isto.org

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 group is chartered to make printers and the applications and operating systems supporting them work together better. All references to the PWG in this document implicitly mean “The Printer Working Group, a Program of the IEEE ISTO.” In order to meet this objective, the PWG will document the results of their work as open standards that define print related protocols, interfaces, procedures and conventions. Printer manufacturers and vendors of printer related software will benefit from the interoperability provided by voluntary conformance to these standards.

In general, a PWG standard is a specification that is stable, well understood, and is technically competent, has multiple, independent and interoperable implementations with substantial operational experience, and enjoys significant public support.

For additional information regarding the Printer Working Group visit:

http://www.pwg.org

Contact information:

The Printer Working Groupc/o The IEEE Industry Standards and Technology Organization445 Hoes LanePiscataway, NJ 08854USA

Page 4 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

45

67

686970717273

74

75

76

77

7879808182838485868788

899091

92

93

94

9596979899100

6

Page 5: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Page 5 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

78

101

9

Page 6: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Table of Contents1. Introduction .....................................................................................................................192. Terminology ....................................................................................................................22

2.1 Conformance Terminology ........................................................................................222.2 Printing Terminology .................................................................................................222.3 Protocol Role Terminology ........................................................................................232.4 Job State Terminology ..............................................................................................232.5 Other Terminology ....................................................................................................262.6 Acronyms and Organizations ....................................................................................27

3. Requirements .................................................................................................................283.1 Rationale for IPP Job and Printer Extensions – Set 2 v2.0 .......................................283.2 Use Cases ................................................................................................................29

3.2.1 Proof Print ..........................................................................................................293.2.2 Job Save ............................................................................................................303.2.3 Reprint Job .........................................................................................................303.2.4 Job Storage ........................................................................................................30

3.3 Exceptions ................................................................................................................313.4 Out of Scope .............................................................................................................313.5 Design Requirements ...............................................................................................31

4. Semantics Common to More Than One Attribute ...........................................................324.1 Guaranteed Protocol Precedence Over the PDL and Queue Overrides ...................324.2 Attribute Precedence ................................................................................................324.3 Job Save and Reprint OPTIONAL Feature ...............................................................34

4.3.1 Reprinting Saved Jobs .......................................................................................344.4 Job Proof Print REQUIRED Feature .........................................................................354.5 Job Storage OPTIONAL Feature ..............................................................................36

4.5.1 Creating Stored Jobs ..........................................................................................364.5.2 Reprinting Stored Jobs .......................................................................................36

5. REQUIRED Operations ..................................................................................................375.1 Cancel-Jobs Operation .............................................................................................37

5.1.1 Cancel-Jobs Request .........................................................................................385.1.2 Cancel-Jobs Response ......................................................................................39

5.2 Cancel-My-Jobs operation ........................................................................................405.2.1 Cancel-My-Jobs Request ...................................................................................415.2.2 Cancel-My-Jobs Response ................................................................................42

5.3 Close-Job Operation .................................................................................................425.3.1 Close-Job Request .............................................................................................435.3.2 Close-Job Response ..........................................................................................43

5.4 Resubmit-Job Operation ...........................................................................................445.4.1 Resubmit-Job Request .......................................................................................455.4.2 Resubmit-Job Response ....................................................................................46

5.5 Reprocess-Job operation ..........................................................................................46 The REQUIRED Reprocess-Job operation allows a user to re-process an exact copy of a Retained Job. This operation is defined in .........................................................................466. New Operation Attributes For Existing Operations .........................................................46

Page 6 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1011

102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146

12

Page 7: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

6.1 job-password (octetString(255)) for Job Creation operations ....................................466.2 job-password-encryption (type2 keyword | name(MAX)) for Job Creation operations ........................................................................................................................................476.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation ......................................476.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation ..................................47

The “job- .....................................................................................................................487. Job Template Attributes ..................................................................................................48

7.1 feed-orientation (type2 keyword) ...............................................................................487.2 font-name-requested (name(MAX)) ..........................................................................497.3 font-size-requested (integer (1:MAX)) .......................................................................507.4 job-cancel-after (integer(1:MAX)) ..............................................................................517.5 job-delay-output-until (type2 keyword | name(MAX)) ................................................517.6 job-delay-output-until-time (dateTime) ......................................................................557.7 job-hold-until-time (dateTime) ...................................................................................587.8 job-phone-number (uri) .............................................................................................627.9 job-print-password (octetString(256)) ........................................................................627.10 job-print-password-encryption (type2 keyword) ......................................................627.11 job-recipient-name (name(MAX)) ............................................................................637.12 job-retain-until (type2 keyword | name(MAX)) .........................................................637.13 job-retain-until-time (dateTime) ...............................................................................647.14 job-save-disposition (collection) ..............................................................................64

7.14.1 save-disposition (type2 keyword) .....................................................................657.14.2 save-info (1setOf collection) .............................................................................67

7.15 job-storage (collection) ............................................................................................737.15.1 job-storage-access (type2 keyword) .................................................................737.15.2 job-storage-disposition (type2 keyword) ...........................................................737.15.3 job-storage-group (name(MAX)) .......................................................................73

7.16 pdl-init-file (1setOf collection) ..................................................................................737.16.1 pdl-init-file-location (uri) ....................................................................................747.16.2 pdl-init-file-name (name(MAX)) ........................................................................757.16.3 pdl-init-file-entry (name(MAX)) .........................................................................75

7.17 proof-print (collection) REQUIRED Job Template attribute .....................................757.17.1 proof-print-copies (integer (0:MAX)) .................................................................767.17.2 media (type2 keyword | name(MAX)) or media-col (collection) ........................76

8. Additional Semantics for Existing Operations .................................................................778.1 Additional attribute for use with the Hold-Job operation ............................................77

8.1.1 job-hold-until-time (dateTime) operation attribute in a Hold Job operation .........778.2 Additional attributes for use with the Set-Job-Attributes operation ............................78

8.2.1 job-delay-output-until (type2 keyword | name(MAX)) and job-delay-output-until-time" (dateTime) operation attributes in a Set-Job operation ......................................788.2.2 job-hold-until" (type2 keyword | name(MAX)) and job-hold-until-time (dateTime) operation attributes in a Set-Job-Attributes operation .................................................79

9. Job Description Attributes ...............................................................................................809.1 job-save-printer-make-and-model (text(127)) ...........................................................80

10. Job Status Attributes ....................................................................................................80

Page 7 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1314147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191

15

Page 8: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

10.1 job-storage (collection) ............................................................................................8011. Printer Description Attributes ........................................................................................80

11.1 feed-orientation-default (type2 keyword) .................................................................8011.2 feed-orientation-supported (1setOf (type2 keyword)) .............................................8111.3 font-name-requested-default (name(MAX)) ............................................................8111.4 font-name-requested-supported (1setOf name(MAX)) ...........................................8111.5 font-size-requested-default (integer (1:MAX)) .........................................................8111.6 font-size-requested-supported (1setOf rangeOfInteger (1:MAX)) ...........................8111.7 job-cancel-after-default (integer(1:MAX) | no-value) ...............................................8111.8 job-cancel-after-supported (rangeOfInteger(1:MAX)) .............................................8111.9 job-creation-attributes-supported (1setOf type2 keyword) ......................................8111.10 job-ids-supported (boolean) ..................................................................................8211.11 job-delay-output-until-default (type2 keyword | name(MAX)) ................................8211.12 job-delay-output-until-supported (1setOf type2 keyword | name(MAX)) ...............8311.13 Why there is no job-delay-output-until-time-default attribute .................................8311.14 job-delay-output-until-time-supported (rangeOfInteger(0:MAX)) ...........................8311.15 Why there is no job-hold-until-time-default ............................................................8611.16 job-hold-until-time-supported (rangeOfInteger(0:MAX)) ........................................8711.17 job-password-supported (integer(0:255)) ..............................................................8711.18 job-password-length-supported (rangeOfInteger (0:255)) .....................................8711.19 job-password-encryption-supported (1setOf (type2 keyword | name(MAX))) .......8711.20 job-password-repertoire-supported (1setOf (type2 keyword)) ...............................8911.21 job-password-repertoire-configured (type2 keyword) ............................................9011.22 job-phone-number-default (uri) .............................................................................9011.23 job-phone-number-supported (boolean) ...............................................................9011.24 job-print-password-supported (rangeOfInteger(0:64)) ..........................................9011.25 job-print-password-encryption-supported (1setOf type2 keyword) ........................9111.26 job-print-password-repertoire-supported (1setOf type2 keyword) .........................9211.27 job-recipient-name-default (name(MAX)) ..............................................................9211.28 job-recipient-name-supported (boolean) ...............................................................9311.29 job-retain-until-supported (type2 keyword | name(MAX)) ......................................9311.30 job-retain-until-time-supported (rangeOfInteger(0:MAX)) ......................................9311.31 job-save-disposition-default (collection) ................................................................9311.32 job-save-disposition-supported (1setOf type2 keyword) .......................................9311.33 job-spooling-supported (type2 keyword) ...............................................................9411.34 job-storage-supported (1setOf keyword) ...............................................................9511.35 job-storage-access-supported (1setOf type2 keyword) .........................................9511.36 job-storage-disposition-supported (1setOf type2 keyword) ...................................9511.37 job-storage-group-supported (1setOf name(MAX)) ..............................................9611.38 max-save-info-supported (integer(1:MAX)) ...........................................................9611.39 media-col-database (1setOf collection) .................................................................9611.40 pdl-init-file-location-supported (1setOf uri) ............................................................9611.41 pdl-init-file-name-supported (1setOf name(MAX)) ................................................9711.42 pdl-init-file-name-subdirectory-supported (boolean) .............................................9711.43 pdl-init-file-default (1setOfcollection) .....................................................................97

Page 8 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1617192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236

18

Page 9: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

11.44 pdl-init-file-supported (1setOf type2 keyword) ......................................................9711.45 pdl-init-file-entry-supported (1setOf name(MAX)) .................................................9711.46 printer-detailed-status-messages (1setOf text(MAX)) ...........................................9711.47 proof-print-default (collection) ...............................................................................9811.48 proof-print-supported (1setOf type2 keyword) ......................................................9811.49 There is no save-info-default Printer attribute .......................................................9811.50 save-disposition-supported (1setOf type2 keyword) .............................................9811.51 save-info-supported (1setOf type2 keyword) ........................................................9811.52 save-location-default (uri) ......................................................................................9811.53 save-location-supported (1setOf uri) .....................................................................9911.54 There is no “save-name-default” Printer attribute .................................................9911.55 save-name-supported (boolean) ...........................................................................9911.56 save-name-subdirectory-supported (boolean) ......................................................9911.57 save-document-format-default (mimeMediaType) ................................................9911.58 save-document-format-supported (1setOf mimeMediaType) ................................9911.59 which-jobs-supported (1setOf type2 keyword) ....................................................100

12. Additional Values and Semantics for Existing IPP Attributes ......................................10012.1 pdl-override-supported (type2 keyword) Printer Description attribute ...................100

12.1.1 Additional semantics for 'guaranteed' value of "pdl-override-supported" attribute .................................................................................................................................. 10112.1.2 Examples of queue override ...........................................................................102

12.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf type2 keyword) Printer Description attribute ....................................................10412.3 job-state-reasons (1setOf type2 keyword) Job Description attribute .....................106

12.3.1 Additional Semantics for "job-state-reasons" attribute for "job-cancel-after" attribute .....................................................................................................................10812.3.2 Additional Semantics for "job-state-reasons" attribute for "job-hold-until-time" attribute .....................................................................................................................10812.3.3 Additional Semantics for "job-state-reasons" attribute for "job-save-disposition" attribute .....................................................................................................................109

12.4 ...............................................................................................................................11812.5 Additional semantics for the IPP "media-col" Job Template Attribute ...................120

12.5.1 media-tooth (type2 keyword | name(MAX)) ....................................................12012.5.2 media-grain (type2 keyword | name(MAX)) ....................................................12112.5.3 media-thickness (integer(1:MAX)) ..................................................................122

13. Obsolete Operations and Attributes ............................................................................15613.1 Obsolete Operations .............................................................................................15613.2 Obsolete Attributes ...............................................................................................15613.3 Obsolete Attribute Values .....................................................................................156

14. Changes Since 5100.11-2010 ....................................................................................15614.1 PWG 5100.11 v2.0 ................................................................................................156

15. Conformance Requirements .......................................................................................15615.1 Conformance Requirements for this specification .................................................15615.2 Conditional Conformance Requirements for Printers ............................................157

16. Internationalization Considerations .............................................................................161

Page 9 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1920237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281

21

Page 10: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

17. Security Considerations ..............................................................................................16218. IANA Considerations ..................................................................................................162

18.1 IPP Attribute and Keyword Value Registrations ....................................................16218.2 Attribute Value Registrations .................................................................................16418.3 Type2 enum attribute value registrations ..............................................................16618.4 Operation registrations ..........................................................................................166

19. References .................................................................................................................16719.1 Normative References ..........................................................................................16719.2 Informative References .........................................................................................170

20. Authors' Addresses .....................................................................................................17021. Change History ...........................................................................................................172

21.1 February 14, 2019 .................................................................................................17221.2 August 28, 2018 ....................................................................................................172

1. Introduction .......................................................................................................................82. Terminology ....................................................................................................................10

2.1 Conformance Terminology ........................................................................................102.2 Printing Terminology .................................................................................................102.3 Protocol Role Terminology ........................................................................................112.4 Other Terminology ....................................................................................................112.5 Acronyms and Organizations ....................................................................................12

3. Requirements .................................................................................................................133.1 Rationale for IPP Job and Printer Extensions – Set 2 v2.0 .......................................133.2 Use Cases ................................................................................................................14

3.2.1 Proof Print ..........................................................................................................143.2.2 Job Save ............................................................................................................153.2.3 Reprint Job .........................................................................................................15

3.3 Exceptions ................................................................................................................153.4 Out of Scope .............................................................................................................153.5 Design Requirements ...............................................................................................16

4. Semantics Common to More Than One Attribute ...........................................................174.1 Guaranteed Protocol Precedence Over the PDL and Queue Overrides ...................174.2 Attribute Precedence ................................................................................................174.3 Job Save and Reprint OPTIONAL Feature ...............................................................19

4.3.1 Reprinting Saved Jobs .......................................................................................194.4 Job Proof Print REQUIRED Feature .........................................................................20

5. New Attributes ................................................................................................................205.1 Operation Attributes ..................................................................................................20

5.1.1 job-password (octetString(255)) for Job Creation operations .............................205.1.2 job-password-encryption (type2 keyword | name(MAX)) for Job Creation operations ....................................................................................................................215.1.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation ...............................215.1.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation ...........................21

5.2 Job Status Attributes .................................................................................................225.2.1 job-save-printer-make-and-model (text(127)) .....................................................22

5.3 Job Template Attributes ............................................................................................22

Page 10 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2223282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326

24

Page 11: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

5.3.1 feed-orientation (type2 keyword) ........................................................................225.3.2 font-name-requested (name(MAX)) ....................................................................235.3.3 font-size-requested (integer (1:MAX)) ................................................................245.3.4 job-delay-output-until (type2 keyword | name(MAX)) .........................................245.3.5 job-delay-output-until-time (dateTime) ................................................................285.3.6 job-hold-until-time (dateTime) .............................................................................305.3.7 job-phone-number (uri) .......................................................................................345.3.8 job-recipient-name (name(MAX)) .......................................................................345.3.9 job-save-disposition (collection) .........................................................................345.3.10 media-col (collection) ........................................................................................435.3.11 pdl-init-file (1setOf collection) ...........................................................................455.3.12 proof-print (collection) REQUIRED Job Template attribute ..............................475.3.13 proof-print-copies (integer (0:MAX)) .................................................................485.3.14 media (type2 keyword | name(MAX)) or media-col (collection) ........................48

5.4 Printer Description Attributes ....................................................................................495.4.1 feed-orientation-default (type2 keyword) ............................................................495.4.2 feed-orientation-supported (1setOf (type2 keyword)) .........................................495.4.3 font-name-requested-default (name(MAX)) ........................................................495.4.4 font-name-requested-supported (1setOf name(MAX)) .......................................495.4.5 font-size-requested-default (integer (1:MAX)) ....................................................495.4.6 font-size-requested-supported (1setOf rangeOfInteger (1:MAX)) ......................495.4.7 job-creation-attributes-supported (1setOf type2 keyword) ..................................495.4.8 job-ids-supported (boolean) ................................................................................505.4.9 job-delay-output-until-default (type2 keyword | name(MAX)) .............................505.4.10 job-delay-output-until-supported (1setOf type2 keyword | name(MAX)) ...........505.4.11 job-delay-output-until-time-supported (rangeOfInteger(0:MAX)) ......................505.4.12 job-hold-until-time-supported (rangeOfInteger(0:MAX)) ...................................515.4.13 job-password-supported (integer(0:255)) .........................................................515.4.14 job-password-encryption-supported (1setOf (type2 keyword | name(MAX))) ...515.4.15 job-phone-number-default (uri) .........................................................................535.4.16 job-phone-number-supported (boolean) ...........................................................535.4.17 job-recipient-name-default (name(MAX)) .........................................................535.4.18 job-recipient-name-supported (boolean) ..........................................................535.4.19 job-save-disposition-default (collection) ...........................................................535.4.20 job-save-disposition-supported (1setOf type2 keyword) ...................................535.4.21 job-spooling-supported (type2 keyword) ..........................................................545.4.22 max-save-info-supported (integer(1:MAX)) ......................................................545.4.23 media-col-database (1setOf collection) ............................................................555.4.24 pdl-init-file-location-supported (1setOf uri) .......................................................555.4.25 pdl-init-file-name-supported (1setOf name(MAX)) ............................................555.4.26 pdl-init-file-name-subdirectory-supported (boolean) .........................................555.4.27 pdl-init-file-default (1setOfcollection) ................................................................565.4.28 pdl-init-file-supported (1setOf type2 keyword) ..................................................565.4.29 pdl-init-file-entry-supported (1setOf name(MAX)) .............................................565.4.30 printer-detailed-status-messages (1setOf text(MAX)) ......................................56

Page 11 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2526327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371

27

Page 12: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

5.4.31 proof-print-default (collection) ...........................................................................565.4.32 proof-print-supported (1setOf type2 keyword) ..................................................565.4.33 save-disposition-supported (1setOf type2 keyword) .........................................575.4.34 save-info-supported (1setOf type2 keyword) ....................................................575.4.35 save-location-default (uri) .................................................................................575.4.36 save-location-supported (1setOf uri) ................................................................575.4.37 save-name-supported (boolean) ......................................................................575.4.38 save-name-subdirectory-supported (boolean) ..................................................575.4.39 save-document-format-default (mimeMediaType) ............................................575.4.40 save-document-format-supported (1setOf mimeMediaType) ...........................585.4.41 which-jobs-supported (1setOf type2 keyword) .................................................58

6. New Operations ..............................................................................................................586.1 Cancel-Jobs Operation .............................................................................................59

6.1.1 Access Rights ....................................................................................................606.1.2 Cancel-Jobs Request .........................................................................................606.1.3 Cancel-Jobs Response ......................................................................................61

6.2 Cancel-My-Jobs operation ........................................................................................616.2.1 Access Rights .....................................................................................................626.2.2 Cancel-My-Jobs Request ...................................................................................626.2.3 Cancel-My-Jobs Response ................................................................................63

6.3 Close-Job Operation .................................................................................................636.3.1 Access Rights .....................................................................................................646.3.2 Close-Job Request .............................................................................................646.3.3 Close-Job Response ..........................................................................................64

6.4 Resubmit-Job Operation ...........................................................................................656.4.1 Access Rights .....................................................................................................666.4.2 Resubmit-Job Request .......................................................................................666.4.3 Resubmit-Job Response ....................................................................................67

6.5 Reprocess-Job operation ..........................................................................................677. New Values for Existing Attributes ..................................................................................67

7.1 pdl-override-supported (type2 keyword) ...................................................................677.1.1 Additional semantics for 'guaranteed' value of "pdl-override-supported" attribute .................................................................................................................................... 677.1.2 Examples of queue override ...............................................................................69

7.2 which-jobs (type2 keyword) .......................................................................................707.3 job-state-reasons (1setOf type2 keyword) ................................................................72

7.3.1 Additional Semantics for "job-state-reasons" attribute for "job-hold-until-time" attribute ....................................................................................................................... 737.3.2 Additional Semantics for "job-state-reasons" attribute for "job-save-disposition" attribute ....................................................................................................................... 74

8. Deprecated Attributes .....................................................................................................759. Additional Semantics for Existing Operations .................................................................75

9.1 Get-Jobs: which-jobs (type2 keyword) ......................................................................759.2 Hold-Job: job-hold-until-time (dateTime) ...................................................................759.3 Set-Job-Attributes .....................................................................................................76

Page 12 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2829372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416

30

Page 13: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

9.3.1 Set-Job-Attributes: job-delay-output-until (type2 keyword | name(MAX)) and job-delay-output-until-time" (dateTime) .............................................................................769.3.2 Set-Job-Attributes: job-hold-until (type2 keyword | name(MAX)) and job-hold-until-time (dateTime) operation attributes ....................................................................77

10. Conformance Requirements .........................................................................................7810.1 Conformance Requirements for this specification ...................................................7810.2 Conditional Conformance Requirements for Printer objects ...................................7810.3 Conformance Requirements for Clients ..................................................................7910.4 Conformance Requirements for the OPTIONAL "job-save-disposition" Job Template attribute ...........................................................................................................79

10.4.1 Client Conformance Requirements for the 'job-save-disposition" attribute .......7910.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute .....8010.4.3 Job Save Format Specification Conformance Requirements ...........................81

10.5 Conformance Requirements for the REQUIRED "proof-print" Job Template attribute ........................................................................................................................................81

10.5.1 Client Conformance Requirements for the 'proof-print" attribute ......................8110.5.2 Printer Conformance Requirements for the 'proof-print" attribute .....................81

11. Internationalization Considerations ...............................................................................8212. Security Considerations ................................................................................................8313. IANA Considerations ....................................................................................................83

13.1 IPP Attribute and Keyword Value Registrations ......................................................8313.2 Attribute Value Registrations ...................................................................................8413.3 Type2 enum attribute value registrations ................................................................8713.4 Operation registrations ............................................................................................87

14. References ...................................................................................................................8714.1 Normative References ............................................................................................8714.2 Informative References ...........................................................................................89

15. Authors' Addresses .......................................................................................................9016. Overview of Changes ...................................................................................................92

16.1 IPP Job and Printer Extensions - Set 2 v2.0 ...........................................................9217. Change History .............................................................................................................92

17.1 August 28, 2018 ......................................................................................................921. Introduction .......................................................................................................................92. Terminology ....................................................................................................................12

2.1 Conformance Terminology ........................................................................................122.2 Printing Terminology .................................................................................................122.3 Protocol Role Terminology ........................................................................................132.4 Job State Terminology ..............................................................................................132.5 Other Terminology ....................................................................................................162.6 Acronyms and Organizations ....................................................................................17

3. Requirements .................................................................................................................183.1 Rationale for IPP Job and Printer Extensions – Set 2 v2.0 .......................................183.2 Use Cases ................................................................................................................19

3.2.1 Proof Print ..........................................................................................................193.2.2 Job Save ............................................................................................................20

Page 13 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3132417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461

33

Page 14: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

3.2.3 Reprint Job .........................................................................................................203.2.4 Job Storage ........................................................................................................20

3.3 Exceptions ................................................................................................................213.4 Out of Scope .............................................................................................................213.5 Design Requirements ...............................................................................................21

4. Semantics Common to More Than One Attribute ...........................................................224.1 Guaranteed Protocol Precedence Over the PDL and Queue Overrides ...................224.2 Attribute Precedence ................................................................................................224.3 Job Save and Reprint OPTIONAL Feature ...............................................................24

4.3.1 Reprinting Saved Jobs .......................................................................................244.4 Job Proof Print REQUIRED Feature .........................................................................254.5 Job Storage OPTIONAL Feature ..............................................................................25

4.5.1 Creating Stored Jobs ..........................................................................................264.5.2 Reprinting Stored Jobs .......................................................................................26

5. REQUIRED Operations ..................................................................................................265.1 Cancel-Jobs Operation .............................................................................................27

5.1.1 Cancel-Jobs Request .........................................................................................285.1.2 Cancel-Jobs Response ......................................................................................29

5.2 Cancel-My-Jobs operation ........................................................................................295.2.1 Cancel-My-Jobs Request ...................................................................................305.2.2 Cancel-My-Jobs Response ................................................................................31

5.3 Close-Job Operation .................................................................................................325.3.1 Close-Job Request .............................................................................................325.3.2 Close-Job Response ..........................................................................................33

5.4 Resubmit-Job Operation ...........................................................................................335.4.1 Resubmit-Job Request .......................................................................................355.4.2 Resubmit-Job Response ....................................................................................35

5.5 Reprocess-Job operation ..........................................................................................356. New Operation Attributes For Existing Operations .........................................................35

6.1 job-password (octetString(255)) for Job Creation operations ....................................356.2 job-password-encryption (type2 keyword | name(MAX)) for Job Creation operations ........................................................................................................................................366.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation ......................................366.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation ..................................37

7. Job Template Attributes ..................................................................................................377.1 feed-orientation (type2 keyword) ...............................................................................377.2 font-name-requested (name(MAX)) ..........................................................................387.3 font-size-requested (integer (1:MAX)) .......................................................................397.4 job-cancel-after (integer(1:MAX)) ..............................................................................397.5 job-delay-output-until (type2 keyword | name(MAX)) ................................................397.6 job-delay-output-until-time (dateTime) ......................................................................437.7 job-hold-until-time (dateTime) ...................................................................................457.8 job-phone-number (uri) .............................................................................................497.9 job-print-password (octetString(256)) ........................................................................497.10 job-print-password-encryption (type2 keyword) ......................................................49

Page 14 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3435462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506

36

Page 15: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

7.11 job-recipient-name (name(MAX)) ............................................................................507.12 job-retain-until (type2 keyword | name(MAX)) .........................................................507.13 job-retain-until-time (dateTime) ...............................................................................517.14 job-save-disposition (collection) ..............................................................................51

7.14.1 save-disposition (type2 keyword) .....................................................................527.14.2 save-info (1setOf collection) .............................................................................54

7.15 job-storage (collection) ............................................................................................597.15.1 job-storage-access (type2 keyword) .................................................................607.15.2 job-storage-disposition (type2 keyword) ...........................................................607.15.3 job-storage-group (name(MAX)) .......................................................................60

7.16 pdl-init-file (1setOf collection) ..................................................................................607.16.1 pdl-init-file-location (uri) ....................................................................................617.16.2 pdl-init-file-name (name(MAX)) ........................................................................617.16.3 pdl-init-file-entry (name(MAX)) .........................................................................62

7.17 proof-print (collection) REQUIRED Job Template attribute .....................................627.17.1 proof-print-copies (integer (0:MAX)) .................................................................627.17.2 media (type2 keyword | name(MAX)) or media-col (collection) ........................63

8. Additional Semantics for Existing Operations .................................................................638.1 Additional attribute for use with the Hold-Job operation ............................................64

8.1.1 job-hold-until-time (dateTime) operation attribute in a Hold Job operation .........648.2 Additional attributes for use with the Set-Job-Attributes operation ............................64

8.2.1 job-delay-output-until (type2 keyword | name(MAX)) and job-delay-output-until-time" (dateTime) operation attributes in a Set-Job operation ......................................658.2.2 job-hold-until" (type2 keyword | name(MAX)) and job-hold-until-time (dateTime) operation attributes in a Set-Job-Attributes operation .................................................65

9. Job Description Attributes ...............................................................................................669.1 job-save-printer-make-and-model (text(127)) ...........................................................66

10. Job Status Attributes ....................................................................................................6710.1 job-storage (collection) ............................................................................................67

11. Printer Description Attributes ........................................................................................6711.1 feed-orientation-default (type2 keyword) .................................................................6711.2 feed-orientation-supported (1setOf (type2 keyword)) .............................................6711.3 font-name-requested-default (name(MAX)) ............................................................6711.4 font-name-requested-supported (1setOf name(MAX)) ...........................................6711.5 font-size-requested-default (integer (1:MAX)) .........................................................6711.6 font-size-requested-supported (1setOf rangeOfInteger (1:MAX)) ...........................6711.7 job-cancel-after-default (integer(1:MAX) | no-value) ...............................................6811.8 job-cancel-after-supported (rangeOfInteger(1:MAX)) .............................................6811.9 job-creation-attributes-supported (1setOf type2 keyword) ......................................6811.10 job-ids-supported (boolean) ..................................................................................6911.11 job-delay-output-until-default (type2 keyword | name(MAX)) ................................6911.12 job-delay-output-until-supported (1setOf type2 keyword | name(MAX)) ...............6911.13 Why there is no job-delay-output-until-time-default attribute .................................6911.14 job-delay-output-until-time-supported (rangeOfInteger(0:MAX)) ...........................6911.15 Why there is no job-hold-until-time-default ............................................................69

Page 15 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3738507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551

39

Page 16: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

11.16 job-hold-until-time-supported (rangeOfInteger(0:MAX)) ........................................7011.17 job-password-supported (integer(0:255)) ..............................................................7011.18 job-password-length-supported (rangeOfInteger (0:255)) .....................................7011.19 job-password-encryption-supported (1setOf (type2 keyword | name(MAX))) .......7011.20 job-password-repertoire-supported (1setOf (type2 keyword)) ...............................7211.21 job-password-repertoire-configured (type2 keyword) ............................................7311.22 job-phone-number-default (uri) .............................................................................7311.23 job-phone-number-supported (boolean) ...............................................................7311.24 job-print-password-supported (rangeOfInteger(0:64)) ..........................................7311.25 job-print-password-encryption-supported (1setOf type2 keyword) ........................7411.26 job-print-password-repertoire-supported (1setOf type2 keyword) .........................7511.27 job-recipient-name-default (name(MAX)) ..............................................................7511.28 job-recipient-name-supported (boolean) ...............................................................7511.29 job-retain-until-supported (type2 keyword | name(MAX)) ......................................7611.30 job-retain-until-time-supported (rangeOfInteger(0:MAX)) ......................................7611.31 job-save-disposition-default (collection) ................................................................7611.32 job-save-disposition-supported (1setOf type2 keyword) .......................................7611.33 job-spooling-supported (type2 keyword) ...............................................................7711.34 job-storage-supported (1setOf keyword) ...............................................................7711.35 job-storage-access-supported (1setOf type2 keyword) .........................................7811.36 job-storage-disposition-supported (1setOf type2 keyword) ...................................7811.37 job-storage-group-supported (1setOf name(MAX)) ..............................................7811.38 max-save-info-supported (integer(1:MAX)) ...........................................................7911.39 media-col-database (1setOf collection) .................................................................7911.40 pdl-init-file-location-supported (1setOf uri) ............................................................7911.41 pdl-init-file-name-supported (1setOf name(MAX)) ................................................7911.42 pdl-init-file-name-subdirectory-supported (boolean) .............................................7911.43 pdl-init-file-default (1setOfcollection) .....................................................................8011.44 pdl-init-file-supported (1setOf type2 keyword) ......................................................8011.45 pdl-init-file-entry-supported (1setOf name(MAX)) .................................................8011.46 printer-detailed-status-messages (1setOf text(MAX)) ...........................................8011.47 proof-print-default (collection) ...............................................................................8011.48 proof-print-supported (1setOf type2 keyword) ......................................................8111.49 There is no save-info-default Printer attribute .......................................................8111.50 save-disposition-supported (1setOf type2 keyword) .............................................8111.51 save-info-supported (1setOf type2 keyword) ........................................................8111.52 save-location-default (uri) ......................................................................................8111.53 save-location-supported (1setOf uri) .....................................................................8111.54 There is no “save-name-default” Printer attribute .................................................8211.55 save-name-supported (boolean) ...........................................................................8211.56 save-name-subdirectory-supported (boolean) ......................................................8211.57 save-document-format-default (mimeMediaType) ................................................8211.58 save-document-format-supported (1setOf mimeMediaType) ................................8211.59 which-jobs-supported (1setOf type2 keyword) ......................................................82

12. Additional Values and Semantics for Existing IPP Attributes ........................................83

Page 16 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4041552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596

42

Page 17: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.1 pdl-override-supported (type2 keyword) Printer Description attribute .....................8312.1.1 Additional semantics for 'guaranteed' value of "pdl-override-supported" attribute .................................................................................................................................... 8312.1.2 Examples of queue override .............................................................................85

12.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf type2 keyword) Printer Description attribute ......................................................8612.3 job-state-reasons (1setOf type2 keyword) Job Description attribute .......................88

12.3.1 Additional Semantics for "job-state-reasons" attribute for "job-cancel-after" attribute ....................................................................................................................... 8912.3.2 Additional Semantics for "job-state-reasons" attribute for "job-hold-until-time" attribute ....................................................................................................................... 9012.3.3 Additional Semantics for "job-state-reasons" attribute for "job-save-disposition" attribute ....................................................................................................................... 90

12.4 Additional keyword values for the “media-type” member attribute ..........................9112.5 Additional semantics for the IPP "media-col" Job Template Attribute .....................93

12.5.1 media-tooth (type2 keyword | name(MAX)) ......................................................9312.5.2 media-grain (type2 keyword | name(MAX)) ......................................................9412.5.3 media-thickness (integer(1:MAX)) ....................................................................95

13. Obsolete Operations and Attributes ..............................................................................9513.1 Obsolete Operations ...............................................................................................9513.2 Obsolete Attributes .................................................................................................9513.3 Obsolete Attribute Values .......................................................................................95

14. Changes Since 5100.11-2010 ......................................................................................9514.1 PWG 5100.11 v2.0 ..................................................................................................95

15. Conformance Requirements .........................................................................................9615.1 Conformance Requirements for this specification ...................................................9615.2 Conditional Conformance Requirements for Printers ..............................................97

16. Internationalization Considerations ...............................................................................9717. Security Considerations ................................................................................................9818. IANA Considerations ....................................................................................................98

18.1 IPP Attribute and Keyword Value Registrations ......................................................9818.2 Attribute Value Registrations .................................................................................10018.3 Type2 enum attribute value registrations ..............................................................10218.4 Operation registrations ..........................................................................................102

19. References .................................................................................................................10319.1 Normative References ..........................................................................................10319.2 Informative References .........................................................................................105

20. Authors' Addresses .....................................................................................................10521. Change History ...........................................................................................................107

21.1 February 14, 2019 .................................................................................................10721.2 August 28, 2018 ....................................................................................................107

List of FiguresFigure 1 - IPP Job States and Transitions ..........................................................................25

Page 17 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4344597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639

640641

45

Page 18: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Figure 2 - Job Creation Operation Flow Diagram with "job-delay-output-until" specified ....54Figure 3 - Job Creation Operation Flow Diagram with "job-delay-output-until-time" specified

......................................................................................................................................58Figure 34 - Job Creation Operation Flow Diagram with "job-hold-until-time" specified .......60Figure 5 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs ..........61Figure 1 - Job Creation Operation Flow Diagram with "job-delay-output-until" specified ....27Figure 1 - IPP Job States and Transitions ..........................................................................15Figure 2 - Job Creation Operation Flow Diagram with "job-delay-output-until-time" specified

......................................................................................................................................42Figure 3 - Job Creation Operation Flow Diagram with "job-delay-output-until-time" specified

......................................................................................................................................45Figure 4 - Job Creation Operation Flow Diagram with "job-hold-until-time" specified ........47Figure 45 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs ....3348

List of TablesTable 1 - Summary of Attributes Defined ............................................................................20Table 2 - Summary of Operations defined or referenced ...................................................23Table 3 - Legal job state transitions for Cancel-Jobs and Cancel-My-Jobs Operations .....39Table 4 - State Transition Table for the Resubmit-Job operation .......................................45Table 5 - Comparison of "job-delay-output-until" with "job-hold-until" .................................54Table 6 - Comparison of "job-delay-output-until-time" with "job-hold-until-time" .................58Table 7 - "job-save-disposition" member attributes ............................................................66Table 8 - "save-info" member attributes .............................................................................69Table 9 - URI Schemes for "save-location" member attribute ............................................70Table 10 - Printer actions for various Job and Printer attribute values ...............................73Table 11 - "pdl-init-file" member attributes ..........................................................................75Table 12 - "proof-print" member attributes ..........................................................................77Table 13 - Standard keywords for "job-password-encryption-supported" ...........................88Table 14: job-password-repertoire-supported keyword definitions .....................................91Table 15 - Standard keywords for "job-storage-encryption-supported" ..............................92Table 16 - Standard keywords for "job-storage-access-supported" ....................................96Table 17 - Standard keywords for "job-storage-disposition-supported" ..............................96Table 18 - Rules for 'guaranteed' value of "pdl-override-supported" attribute ..................103Table 19 - Values of "job-state-reasons" attribute for various job conditions ....................110Table 20 - Additional "media-col" member attributes ........................................................121Table 1 - Summary of Attributes Defined ..............................................................................9Table 2 - Summary of Operations defined or referenced ...................................................12Table 3 - Legal job state transitions for Cancel-Jobs and Cancel-My-Jobs Operations .....27Table 4 - State Transition Table for the Resubmit-Job operation .......................................34Table 5 - Comparison of "job-delay-output-until" with "job-hold-until" .................................41Table 6 - Comparison of "job-delay-output-until-time" with "job-hold-until-time" .................44Table 7 - "job-save-disposition" member attributes ............................................................52Table 8 - "save-info" member attributes .............................................................................54

Page 18 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4647642643644645646647648649650651652653654

655656

657658659660661662663664665666667668669670671672673674675676677678679680681682683684685

48

Page 19: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Table 9 - URI Schemes for "save-location" member attribute ............................................56Table 10 - Printer actions for various Job and Printer attribute values ...............................59Table 15 - Additional "media-col" member attributes ..........................................................43Table 11 - "pdl-init-file" member attributes ..........................................................................61Table 12 - "proof-print" member attributes ..........................................................................62Table 3 - Legal Job state transitions for Cancel-Jobs and Cancel-My-Jobs Operations ....59Table 4 - State Transition Table for the Resubmit-Job operation .......................................65Table 13 - Standard keywords for "job-password-encryption-supported" ...........................70Table 14: job-password-repertoire-supported keyword definitions .....................................72Table 15 - Standard keywords for "job-storage-encryption-supported" ..............................74Table 16 - Standard keywords for "job-storage-access-supported" ....................................78Table 17 - Standard keywords for "job-storage-disposition-supported" ..............................78Table 18 - Rules for 'guaranteed' value of "pdl-override-supported" attribute ....................85Table 1419 - Values of "job-state-reasons" attribute for various Jobjob conditions ........7491Table 20 - Additional "media-col" member attributes ..........................................................93

Page 19 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4950686687688689690691692693694695696697698699700701

51

Page 20: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

1. IntroductionThis specification defines an extension to IPP/1.1 [STD92]. This specification defines Operation attributes, Job Template attributes, and Printer Description attributes as summarized in Table 1. to add support for several new features to IPP as an extension to IPP/1.1 [STD92]. This specification also defines or references REQUIRED operations as summarized in Table 2. Finally, this specification defines OPTIONAL semantics for Attribute Precedence, a Queue Override Feature, and a feature to guarantee protocol precedence over the PDL directives.

Some of the features defined in the first version of this specification are deprecated in this second version.

Table 1 - Summary of Attributes Defined

Attribute Name (syntax) Description Conformance

Operation Attributes

job-password (octetString(255)) Password for secure processing OPTIONAL

job-password-encryption (type2 keyword | name(MAX))

Password encryption method for secure printing OPTIONAL

job-ids (1setOf integer(1:MAX)) List of Job idsIDs for Cancel-Jobs, Cancel-My-Jobs, Get-Jobs, and Purge-Jobs operations.

REQUIRED

Job Template Attributes

feed-orientation (type2 keyword) Media edge to be fed into the print engine from the paper tray

OPTIONAL

font-name-requested (name(MAX)) Font name when missing from the document data (e.g. text documents)

OPTIONAL

font-size-requested (integer (1:MAX))

Font size in points when missing from the document data (e.g. text documents)

OPTIONAL

job-delay-output-until (type2 keyword | name(MAX))

Delay output until a specified time period, but allow processing

OPTIONAL

job-delay-output-until-time (dateTime)

Delay output until a specified date and time, but allow processing

OPTIONAL

job-hold-until-time (dateTime) Hold the Job until the supplied date and time OPTIONAL

job-phone-number (uri) Contact telephone number for the jobJob OPTIONAL

Page 20 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

5253

702

703704705706707708709

710711

712

54

Page 21: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Attribute Name (syntax) Description Conformance

job-print-password (octetString(256) Password for releasing a retained or held Job OPTIONAL

job-print-password-encryption (type2 keyword)

Encryption method used for encrypting the value held by "job-print-password"

OPTIONAL

job-recipient-name (name(MAX)) Name of the person that is to receive the output of the jobJob

OPTIONAL

job-retain-until (type2 keyword | name(MAX))

Retain Job until the specified logical future time OPTIONAL

job-retain-until-time (dateTime) Retain Job until the specified future time OPTIONAL

job-save-disposition (collection) Save the Document Data of a jobJob, such that the Job can be re-printed

OPTIONAL

job-storage (collection) Store a Retained Job indefinitely for reprint OPTIONAL

pdl-init-file (1setOf collection) Controls initialization of the Printer’s PDL interpreter(s)

OPTIONAL

proof-print (collection) Control a proof print of the Job before printing a full run of the jobJob

REQUIRED

Job Description Attributes

job-save-printer-make-and-model (text(127))

Make and model of the output device which saved this jobJob

OPTIONAL

Job Status Attributes

job-storage (collection) Store a Retained Job indefinitely for reprint OPTIONAL

Printer Description Attributes

job-creation-attributes-supported (1setOf type2 keyword)

setSet of Job Creation attributes supported OPTIONAL

job-ids-supported (boolean) Whether “job-ids-supported” is supported by the Printer as an operation attribute in Purge-Jobs and Get-Jobs operations

REQUIRED

job-password-supported (integer (0:255))

Maximum unencrypted password length supported

OPTIONAL

job-password-encryption-supported (1setOf (type2 keyword | name(MAX)))

Encryption methods supports for Secure Print OPTIONAL

Page 21 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

5556

57

Page 22: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Attribute Name (syntax) Description Conformance

job-password-length-supported (rangeOfInteger (0:255))

Minimum and maximum length policy for "job-password"

OPTIONAL

job-password-repertoire-configured (type2 keyword)

Supported repertoires of allowable characters configured for "job-password" unencrypted value

OPTIONAL

job-password-repertoire-supported (1setOf type2 keyword)

Repertoire of allowable characters configured for "job-password" unencrypted value

OPTIONAL

job-print-password-supported (octetString(256)

Password for releasing a retained or held Job OPTIONAL

job-print-password-encryption-supported (1setOf type2 keyword)

Encryption methods supported for encrypting the value held by "job-print-password"

OPTIONAL

job-print-password-repertoire-supported (1setOf type2 keyword)

Supported repertoires of allowable characters configured for "job-password" unencrypted value

OPTIONAL

job-retain-until-supported (1setOf type2 keyword | name(MAX))

Specifies the job retention logical times supported by the Printer

OPTIONAL

job-retain-until-time-supported (rangeOfInteger(0:MAX))

Specifies the job retention time range supported by the Printer

OPTIONAL

job-spooling-supported (type2 keyword)

Indicates whether or not jobsJobs are spooled before printing

OPTIONAL

job-storage-supported (1setOf keyword)

Indicates whether job storage is supported and what members are supported by the Printer

OPTIONAL

job-storage-access-supported (1setOf type2 keyword)

Indicates what levels of access restrictions are supported by the Printer

OPTIONAL

job-storage-disposition-supported (1setOf type2 keyword)

Indicates which Job Storage dispositions are supported by the Printer

OPTIONAL

job-storage-group-supported (1setOf name(MAX))

Indicates what grouping labels are supported by the Printer for Stored Jobs

OPTIONAL

max-save-info-supported (integer(1:MAX))

Maximum number of “save-info” member attribute collections that a Printer can accept

OPTIONAL

media-col-database (1setOf collection)

Set of media collections available in the printer’s media database

OPTIONAL

printer-detailed-status-messages (1setOf text(MAX))

Additional detailed and technical information about the printer

OPTIONAL

Page 22 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

5859

60

Page 23: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Attribute Name (syntax) Description Conformance

which-jobs-supported (1setOf type2 keyword)

Supported values for the “which-jobs” operation attribute of the Get-Jobs operation

REQUIRED

Many of the semantics of these Job Template and Operation attributes MAY also be supplied in corresponding document format (PDL) directive. In such cases, the user MAY request that the application include these directives as part of the document data when the document is generated, rather than in the IPP protocol at print time. However, some applications are unable to generate such PDL directives when generating the PDL document data. Also, some of these semantics are not supported in some PDLs. Finally, in a production environment, the document may be generated separately from being printed, in which case the end user or the production printer operator supplies the instructions at print time, long after the document had been created.

Table 2 - Summary of Operations defined or referenced

Operation Description Conformance

Cancel-Jobs Allows an operator/administrator to cancel a list of Not Completed jobsJobs or all Not Completed jobsJobs on the Printer

REQUIRED

Cancel-My-Jobs Allows a user to cancel a list of their Not Completed jobsJobs or all of their Not Completed jobsJobs

REQUIRED

Close-Job Allows a Client to close a multi-document Job without supplying any additional documents.

REQUIRED

Reprocess-Job Allows a user to re-process an exact copy of a Retained Job. This operation is defined in [RFC3998][RFC3998]

REQUIRED

Resubmit-Job Allows a user to re-process a modified copy of a Retained Job. REQUIRED

2. TerminologyThis section defines the following additional terms that are used throughout this document.

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 [RFC2119].[RFC2119]. The term CONDITIONALLY REQUIRED is additionally defined for a conformance requirement that applies when a specified condition is true.

Page 23 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

6162

713714715716717718719720721

722

723

724

725

726727728729730

63

Page 24: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

2.2 Printing Terminology

Normative definitions and semantics of printing terms are imported from IETF Printer MIB v2 [RFC3805], IETF Finisher MIB [RFC3806], and IETF Internet Printing Protocol/1.1: Model and Semantics [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.

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 ana endpoint device, e.g., a marking engine, a fax modem, etc.

2.3 Protocol Role Terminology

This document also defines the following protocol roles in order 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 Job State Terminology

This document defines features that influence the trajectory of a Job through the various Job states. The states defined for "job-state" [STD92] and the transitions between these states are illustrated in Figure 1.

Job Not Completed: The phase when a Job is in the ’pending’, ’pending-held’, ’processing’, or ’processing-stopped’ state.

Job Retention: The phase when a Job is in its terminal state ('canceled', 'aborted', or 'completed') before it has been stripped of its Document data.

Page 24 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

6465

731

732733734

735736737

738739

740741742

743

744745

746

747748

749750

751752753

754

755756757

758759

760761

66

Page 25: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Job History: After the Job Retention phase expires for a Job, the Printer deletes the Document data for the Job and the Job becomes part of the Job History. The Printer MAY also delete any number of the Job attributes.

Job Removal: After the Job has remained in the Job History for an implementation-defined time, such as when the number of Jobs exceeds a fixed number or after a fixed time period (which MAY be zero seconds), the IPP Printer removes the Job from the system.

'pending': The Job is a candidate to start processing but is not yet processing.

'pending-held': The Job is not a candidate for processing for any number of reasons but will return to the ’pending’ state as soon as the reasons are no longer present.

'processing': The Job is a candidate to start processing but is not yet processing.

'processing-stopped': The Job is a candidate to start processing but is not yet processing.

’canceled’: The Job has been canceled by a Cancel-Job operation or by some method out-of-band of IPP, the Printer has completed canceling the Job, and all Job Status attributes have reached their final values for the Job.

’aborted’: The Job has been aborted by the system, usually while the Job was in the ’processing’ or ’processing-stopped’ state, the Printer has completed aborting the Job, and all Job Status attributes have reached their final values for the Job.

’completed’: The Job has completed successfully or with warnings or errors after processing, all of the Job Media Sheets have been successfully stacked in the appropriate output bin(s), and all Job Status attributes have reached their final values for the Job.

Page 25 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

6768762763764

765766767

768

769770

771

772

773774775

776777778

779780781

69

Page 26: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Figure 1 - IPP Job States and Transitions

Page 26 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

7071

782

783

72

Page 27: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

2.5 Other Terminology

Document Creation Operations: The operations that create documents: Print-Job, Print-URI, Send-Document and Sent-URI.

Job Creation operation: One of the operations that creates a Job object: Print-Job, Print-URI and Create-Job. The Restart-Job operation [STD92] is not considered a Job Creation operation, since the Printer re-uses the existing Job object. The Validate-Job operation is not considered a Job Creation operation because no Job object is created. Therefore, when a statement also applies to either the Restart-Job and/or the Validate-Job operation, they are mentioned explicitly.

Job Instructions: Information that affects how the Jobjob and its associated documents are to be processed. This includes the Job Template Attributes, some Operation Request Attributes, and other attributes (such as defaults) that are applied to a job.

Job Proof Print Feature: The Job Proof Print Feature (section 4.4) is REQUIRED functionality to allow a user to print one or more copies of a Jobjob for proofing, called a Proof Print Job, using the "proof-print" (collection) Job Template attribute (section 7.11). Subsequently, the user can reprint the Proof Print Job using REQUIRED Resubmit-Job operation (section 5.4) or the REQUIRED Reprocess-Job operation [RFC3998][RFC3998] to get the desired number of copies after the user has proof read the output of the Proof Print Job

Job Save and Reprint Feature: (DEPRECATED): The Job Save and Reprint Feature (section 4.3) is additional OPTIONAL functionality to allow a user to save a Jobprint job as part of Jobjob processing and print it at another time using the OPTIONAL "job-save-disposition" (collection) Job Template attribute (section 7.9). When saving a job, a user MAY specify saving parameters such as the location (remote or local) to save the Job Instructions and/or the Document Data, and/or specify the format in which the print data and Jobjob instructions are saved. Subsequently, the user reprints the Saved Job using either the REQUIRED Resubmit-Job operation (section 5.4) or the REQUIRED Reprocess-Job operation [RFC3998][RFC3998].

Job Storage Feature: The Job Storage Feature (section XXX) is additional OPTIONAL functionality to allow a User to request a Job and its Documents to be retained in their original form to become a Stored Job, so that the Job can be printed or re-printed later using the CONDITIONALLY REQUIRED Resubmit-Job operation (section 5.4). The User indicates via the Client whether the Job submitted is to be printed before becoming a Stored Job (print then store), or rather immediately become a Stored Job without printing (store only). Credentials can be specified to require authentication to reprint the Stored Job.

Job-Submission Operations: The Job- Submission Operations are the IPP operations that create jobsJobs and send document content, namely Print-Job, Print-URI, Create-Job, Send-Document and Send-URI. See [STD92] for further information.

Page 27 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

7374

784

785786

787788789790791792

793794795

796797798799800801802

803804805806807808809810811

812813814815816817818819

820821822

75

Smith Kennedy, 08/17/18, RESOLVED
Why is there a dash between "Job" and "Submission"? Shouldn't it simply be "Job Submission"?
Page 28: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Precedence: The specification of the order or ranking of a series of instructions or attributes from multiple sources referring to the same functionality. See Sectionsection 4.2 of this specification for a description of the Attribute Precedence model.

Print-stream pages: The sequence of pages according to the definition of pages in the language used to express the document data defined relative to the Input Document. See Sectionsection 2.5 of [PWG5100.3] for more information.

Production Printer: A Printer that produces large quantities of high- quality output, that often requires operator participation to make decisions as to the choice of Jobjob and its parameters.

Proof Print Job: A Proof Print Job is a Retained Job that the Printer retains (until removed by a Delete-Job or Purge-Jobs operation or aged out by the Printer using a different policy than for ordinary completed jobsJobs) after printing a proof so that a copy of it can be printed any time after it has been proofed using the Reprocess-Job or Resubmit-Job operations, rather than aging the Jobjob out after an implementation-defined period.

Raster image: A binary representation of an image.

Retained Job: A Retained Job is a Jobjob that the Printer retains in the so-called Job Retention Phase (see [STD92] section 5.3.7.2 Partitioning of Job States) in the job’sJob’s terminal state (‘completed’, ‘aborted’, or ‘canceled’) after processing it, for an implementation-defined period (including zero seconds) or removed by an explicit Delete-Job or Purge-Jobs operation. An exact copy of a Retained Job can be processed using a Reprocess-Job operation. A modified copy of a Retained Job can be processed using a Resubmit-Job operation.

RIP: Raster Image Processor - a page description language interpreter.

Saved Job: A Saved Job is a Retained Job that the Printer retains indefinitely (until removed by a Delete-Job or Purge-Jobs operation) so that a copy of it can be reprinted any time using the Reprocess-Job or Resubmit-Job operations, rather than aging the Jobjob out after an implementation-defined period.

2.6[2.5] Acronyms and Organizations

IANA: Internet Assigned Numbers Authority, http://www.iana.org/ http://www.iana.org/

IETF: Internet Engineering Task Force, http://www.ietf.org/ http://www.ietf.org/

ISO: International Organization for Standardization, http://www.iso.org/ http://www.iso.org/

PWG: Printer Working Group, http://www.pwg.org/ http://www.pwg.org/

Page 28 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

7677823824825

826827828

829830831

832833834835836

837

838839840841842843844

845

846847848849

850

851

852

853

854

78

Page 29: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

3. RequirementsIn order to satisfy the PWG Process/3.0 [PWG_PROC],[PWG_PROC], the following requirements for JPS2 are included in this section:

(a) A rationale for developing this IPP Job and Printer Operations - Set2 (JPS2) specification;

(b) A set of use cases for IPP JPS2;

(c) A set of design requirements for IPP JPS2.

3.1 Rationale for IPP Job and Printer Extensions – Set 2 v2.0

IETF and PWG IPP printing standards define:

(a) A rationale for an abstract model of printing (to support alternate encodings and protocols) in section 3 of the IETF IPP Rationale [RFC2568];

(b) A set of design goals for submitting and canceling Jobs in a printing protocol in section 3.1.4 'Submitting a Print Job’, section 3.1.6 'Canceling a Print Job' (for End User), and section 3.2.2 'Changing Print and Job Status' (for Operator) of the IETF IPP Design Goals [RFC2567];

(c) An abstract model of a Print Service (i.e., ISO DPA Logical Printer) and a Print Device (i.e., ISO DPA Physical Printer) in section 3.1 of IETF IPP/1.1 [STD92];

[(d)] A set of abstract operations for canceling or deleting Print Jobs in section 4.3.3 'Cancel-Job Operation' (for End User) and section 4.2.9 'Purge-Jobs Operation' (for Operator) of IETF IPP/1.1 [STD92] and section 4.2 'Cancel-Current-Job Operation' (for Job Owner or Operator) of IETF IPP Job and Printer Administrative Operations [RFC3998][RFC3998];

[(e)] A set of abstract operations for reprinting Print Jobs in section 4.3.7 'Restart-Job Operation' (same job-id, overwrites accounting data) of IETF IPP/1.1 [STD92] and section 4.1 'Reprocess-Job Operation' (new job-id, original processing instructions) of IETF IPP Job and Printer Administrative Operations [RFC3998][RFC3998];

[(f)] A set of abstract operations for controlling Print Jobs in section 3.3.5 'Hold-Job Operation' (Job Owner and Operator) and section 3.3.6 'Release-Job Operation' (Job Owner and Operator) of IETF IPP/1.1 [STD92] and section 4.3.1 'Suspend-Current-Job Operation' (Job Owner and Operator) and section 4.3.2 'Resume-Job Operation' (Job Owner and Operator) of IETF IPP Job and Printer Administrative Operations [RFC3998][RFC3998]; and

Page 29 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

7980

855

856857

858859

860

861

862

863

864865

866867868869

870871

872873874875876

877878879880

881882883884885886

81

Page 30: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

(d)[(g)] A set of abstract attributes for production printing features in PWG IPP Production Printing Attributes - Set1 [PWG5100.3].

Some IPP Printers already support proofing, saving, and reprinting of large Print Jobs as well as canceling of sets of selected Print Jobs via vendor proprietary operations and attributes.

Therefore, this IPP Job and Printer Extensions – Set 2 v2.0 SpecificationIPP JPS2 specification should:

(1) Support proofing of Print Jobs in IPP Job Creation operations;

(2) Support saving of Print Jobs in IPP Job Creation operations;

(3) Support reprinting saved or proofed Print Jobs with different processing instructions;

(4) Support canceling multiple Print Jobs in single IPP operations;

(5) Support the management, configuration, and maintenance of these extended IPP Printers;

(6) Encourage adoption of modern IPP-based printing infrastructures; and

(7) 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

3.2.1 Proof Print

Alice, Bob, and Charlie work in the system engineering department of a large software vendor. They collaborate to find, describe, and evaluate software feature requirements for financial management tools in their requirements database.

Alice is an artist and chooses their standard fonts and writes style sheets and layout guides for their software requirements specifications. Bob is a quiet, steady worker and an excellent proofreader. Charlie is a good talker who does the interviewing of the marketers and engineers.

Once a month, Charlie extracts from their database all of the detailed software requirements for each project into a spreadsheet. He also extracts all the high-level software requirements into a word processing document. Charlie then submits a single Print Job with two Documents [PWG5100.5] (the spreadsheet and the word processing document) for a proof print of 3 copies (single-sided and portrait).

Page 30 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

8283887888

889890891

892893

894

895

896897

898

899900

901

902903904

905

906

907908909

910911912913

914915916917918

84

Page 31: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Alice searches for layout and visual content errors, while Bob looks for typos and missing words. Charlie commits their fixes to the database, regenerates the source documents, and does another cycle of proof print.

Finally, Charlie wants to produce 60 copies (2-up, two-sided, and landscape) of the retained proof Print Job. So, he reprints the saved Print Job (without sending the document data again) but specifying overrides of some processing instructions.

3.2.2 Job Save

Max and Nancy work in Human Resources at a large company. Twice every year they have to put out a comprehensive guide to the current benefits for all company employees. They do all their proofing electronically in softcopy on their workstations. So, when they're ready, Max submits a master Print Job that requests Jobjob saving and an initial run of 50 copies.

Nancy and Max distribute these copies via interoffice mail with a cover note that includes the "printer-uri" and "job-id" for the saved master Print Job, suggesting that some employees may wish to print extra copies for their families.

3.2.3 Reprint Job

Sam is an operator in the 'glasshouse' print room of a large company. End users can submit Print Jobs to some of his managed printers, but all their jobs are placed on hold for later manual scheduling and release by the Operator, per site policy.

Sam decides when to run various held jobs, loads required media, powers up finishing devices, etc. For example, a Print Job may request special handling for one copy stapled on plain paper, one copy on overhead slide media, and several copies on colored paper with nice covers and binding, in a "job-message-to-operator" attribute [PWG5100.3]. These special handling instructions mean that the Print Job has to be run once (plain paper) and reprinted twice (slides and colored paper), since IPP doesn't support per-copy processing instructions in the same Print Job execution.

3.2.4 Job Storage

Vincent is an administrative assistant for a school. The school provides its teachers with paper forms for documenting their class assignments and attendance. Vincent makes these forms available on the school's web site and also on the school's primary printer / copier multi-function device (MFD) as "Stored Jobs".

The teachers know that they can print additional copies by going to the control panel of this MFD, selecting the desired file from the "Stored Jobs" interface, and selecting the number of copies.

Page 31 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

8586919920921

922923924

925

926927928929930

931932933

934

935936937

938939940941942943944

945

946947948949

950951952

87

Page 32: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Lily is a teacher. She has run out of the assignment tracking form. She goes to the school's office, logs in as herself, chooses the assignment tracking form from the MFD's Stored Jobs list on its control panel, enters 30 copies, and taps Print. The copies are printed, and she returns to her classroom.

3.3 Exceptions

Provide exceptions for the use cases using the casual use case format.

None in original IPP Job and Printer Extensions – Set 2 v2.0...

3.4[3.3] Out of Scope

Provide a list of out of scope use cases and other possibly related areas.

None in original IPP Job and Printer Extensions – Set 2 v2.0...

3.5[3.4] Design Requirements

This IPP Job and Printer Extensions – Set 2 v2.0 design should:

(1) Follow the naming conventions defined in IETF IPP/1.1 [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 proof print attributes;

[(4)] Define new Jobjob saving attributes;

(4)[(5)] Define a new Cancel-Jobs operation (for Operator);

(5)[(6)] Define a new Cancel-My-Jobs operation (for Job Owner);

(6)[(7)] Define a new Close-Job operation (for Job Owner);

(7)[(8)] Define a new "job-ids" operation attribute for existing Get-Jobs and Purge-Jobs operations and new Cancel-Jobs and Cancel-My-Jobs operations that contains a list of target Print Jobs; and

(8)[(9)] Define a new Resubmit-Job operation (for Job Owner or Operator) for reprinting a saved Print Job with new processing instructions.

Page 32 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

8889953954955956

957

958

959

960

961

962

963

964

965966

967968

969

970

971

972

973

974975976

977978

979

90

Page 33: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

4. Semantics Common to More Than One Attribute

4.1 Guaranteed Protocol Precedence Over the PDL and Queue Overrides

The IPP "pdl-override-supported" attribute [STD92] has a new 'guaranteed' value which a Printer implementation uses to indicate that it can guarantee that Job Template attribute supplied in the protocol will override corresponding instructions in the PDL document data. The existing values for this attribute are 'not-attempted' and 'attempted' which are weaker than 'guaranteed'. See the description of the "pdl-override-supported" attribute in [STD92].

IPP does not preclude multiple Printer objects representing a single output device, i.e., so-called "device fan-in". [RFC2911][STD92] describes device fan-in in detail and also introduces the concept of "Printer fan-in" in which multiple Printer objects represent a single Printer object, each with the ability to accept IPP requests. “Printer fan-in” is described more fully in [RFC3998]. A system with multiple queues can be represented as separate Printer objects for each queue, using either device fan-in or Printer fan-in depending on implementation. The administrator can configure each such Printer object with different policies, including supported and default attributes. Each Printer can also have a different access control list, as well.

Sometimes, the system administrator needs to set up a Printer object that will override one or more attributes with a single fixed value for each attribute. These are called "queue overrides". The administrator can configure a Printer that supports the 'guaranteed' value of "pdl-override-supported" to achieve a queue override for the "xxx" attribute by configuring the "xxx-supported" Printer attribute with only a single value. That value will not only override the PDL, but it will also force the Jobjob to have that same value when queried or processed. See the description of the "pdl-override-supported" attribute in Sectionsection 11.1 of this volume.

4.2 Attribute Precedence

This section defines the precedence rules for Queue Override attributes, Page Override attributes, Document Override attributes, attributes supplied in the protocol, PDL instructions, and Printer object defaults. Since each attribute can be specified for all of these levels, it is important to define which level takes precedence when the same attribute occurs at different levels with differing values.

The attribute precedence model has the following features:

1. In principle, each defined attribute can occur at each of the precedence levels.

[2.] Attributes can be introduced and modified at different points in the Jobjob workflow, e.g., in the application, print driver, submission Client, protocol, and Printer.

Page 33 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

9192

980

981

982983984985986

987988989990991992993994995

9969979989991000100110021003

1004

10051006100710081009

1010

1011

10121013

93

Smith Kennedy, 09/04/18,
RFC 8011 discusses "fan-out" / "fan out" but neither "fan-in" nor "fan in" is even mentioned in RFC 8011.
Page 34: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Attributes are supplied by different agents in the system: application, user, print driver, administrator, operator, Printer object, and the output device hardware.

Attributes are supplied at different points in time: PDL generation, Jobjob submission, Jobjob acceptance, Jobjob pending, Jobjob processing.

[3.] Attributes can be introduced and modified at different points in the Jobjob workflow, e.g., in the application, print driver, submission Client, protocol, and Printer.

The following levels of precedence are defined in order of decreasing priority:

[1.] queue override - The value that the Printer enforces for any Jobjob submitted to it (see section 4.1). Set by the administrator when configuring the Printer by setting an "xxx-supported" Printer attribute to contain a single value, i.e., the override value. Example: the administrator sets the Printer's "sides" = 'two-sided-long' so that all Jobs submitted to that (logical) Printer are printed two-sided flipped along the long edge.

Note: The queue override level is only available for Printers that support the 'guaranteed' value for its "pdl-override-supported" attribute (see section 3.1 of this specification). All other levels are available for all Printers independent of the "pdl-override-supported" value.

[2.] page override programming - A special "overrides" collection Job Template attribute that contains the attributes that are to have the page override status (see [PWG5100.6]). Set by the Client when submitting a Jobjob either in the protocol, or set by the user or operator after the Jobjob has been accepted either using the Set-Job-Attributes operation ([RFC3380],), or by the operator using means local to the Printer. Example: "overrides" = {"page-number" = '1'; "media" = 'letterhead'}

[3.] protocol Jobjob object attribute - The Job Template attribute submitted in the protocol (IPP, LPR, etc.).). Set by the Client when submitting a Jobjob in the protocol, or set by the user or operator after the Jobjob has been accepted either using the Set-Job-Attributes operation ([RFC3380],), or by the operator using means local to the Printer. Examples: "media" = 'na-letter' and "copies" = '2'.

1.[4.] PDL document data - an instruction in the PDL document data. Set by the application or print driver that created the PDL. Example: PostScript setPageDevice specifying na-letter media.

[5.] PDL Init File data - a file that the Printer uses to initialize the PDL Interpreter before it starts interpreting each document in a Job. See description of “pdl-init-file” Job Template attribute in Sectionsection 7.10 of this specification. It is immaterial how this file is specified, whether it be by a queue override, Jobjob object attribute or Printerprinter default – the precedence of the contents of this file is at this level.

Page 34 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

9495

101410151016

10171018

10191020

1021

102210231024102510261027

1028102910301031

103210331034103510361037

10381039104010411042

104310441045

10461047104810491050

96

Kennedy, Smith (Wireless & Standards Architect), 01/30/19,
What does this mean?
Kennedy, Smith (Wireless & Standards Architect), 01/30/19,
Shouldn't "Client" be sufficient here since it is a defined term?
Page 35: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

2.[6.] printer default - a Printer "xxx-default" attribute that is applied by the Printer provided that none of the higher levels have supplied a value. The Printer implementation MUST supply values for all of the Printer's "xxx-default" attributes that reflect the out-of-the-box action by the output device. For example, if the output device will use media from the large-capacity input tray if not directed otherwise, the implementation MUST supply the Printer's "media-default" attribute with the 'large-capacity' keyword value without requiring the administrator to configure that value. The implementation MUST allow the administrator to configure the Printer's "xxx-default" attributes to other values, if other values are supported by the implementation. Example: The administrator changes the Printer's "media-default" from 'large-capacity' to 'na-letter'.

Note: Because of the requirement that the implementation supply pre-configured values for the Printer's "xxx-default" attributes, there is no need for a lower "hardware default" precedence level.

4.3 Job Save and Reprint OPTIONAL Feature

The Job Save and Reprint Feature is additional OPTIONAL functionality to allow a user to save a print Jobjob as part of Jobjob processing and print a copy of it at another time. A Client requests a Printer to save a print Jobjob by supplying the “job-save-disposition” (collection) Job Template attribute (see section 7.9) when submitting the Jobjob. In this case, the Printer retains the Jobjob indefinitely in the so-called Job Retention Phase (see [STD92] section 5.3.7.2 Partitioning of Job States) in the Job’sjob’s terminal state (‘completed’, ‘aborted’, or ‘canceled’) after processing it, rather than aging the Jobjob out after an implementation-defined period. In other words, a Saved Job is just a Retained Job that the Printer is retaining indefinitely. When saving a Jobjob, a user MAY specify saving the Document Data, and specify the format in which the print data is saved. These semantics necessitate the definition of additional values for the "job-state-reasons" Job Description attribute, the "job-save-printer-make-and-model" Job Description attribute (see section 9.1), and the use of the Reprocess-Job and Resubmit-Job operations to print these saved Jobs.

This section, in conjunction with the description of the "job-save-disposition" Job Template attribute (see section 7.9) fully describe the Job Save and Reprint Feature. If a Printer supports the Job Save and Reprint Feature, then it MUST also support the Proof Print Feature (see section 4.4). See section 12.4 Conformance Requirements for the OPTIONAL "job-save-disposition" Job Template attribute for additional conformance requirements for clientsClients and Printers.

4.3.1 Reprinting Saved Jobs

This section defines the method by which to reprint a copy of the Saved Job using the Reprocess-Job and Resubmit-Job operations. The Reprocess-Job operation is defined in [RFC3998] and Resubmit-Job is defined in this document and operates on any Retained Job, whether or not it is a Saved Job.

Page 35 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

9798

10511052105310541055105610571058105910601061

106210631064

1065

10661067106810691070107110721073107410751076107710781079

108010811082108310841085

1086

1087108810891090

99

Page 36: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

4.3.1.1 Reprinting using the Reprocess-Job operation

The Reprocess-Job operation [RFC3998] re-processes a copy of any Retained Job after processing was completed, canceled, or aborted. In order to prevent the Printer from aging out a Retained Job, the Client can supply a “job-save-disposition” Job Template attribute (see section 7.9) in a Jobjob submission. In this case the Printer retains the Jobjob (until removed by a Delete-Job or Purge-Jobs operation) as a Saved Job, so that a Client can reprint the Jobjob using Reprocess-Job any time subsequently. When reprinting a Saved Job, the Printer MUST NOT copy the “job-save-disposition” attribute to the copy; otherwise, the Jobjob would be saved again. Similarly, when reprinting a Proof Print Job, the Printer MUST NOT copy the “proof-print” attribute to the Jobjob copy; otherwise, the Jobjob would be proofed again.

4.3.1.2 Reprinting using the Resubmit-Job operation

The Resubmit-Job operation (see section 5.4 below for a complete description) re-processes a copy of any Retained Job in the same way as Reprocess-Job (see section 4.3.1.1), with the addition of being able to supply additional operation and Job Template attributes that will affect the processing of that copy of the Jobjob by either override the values of existing attributes or providing additional attributes. The Resubmit-Job operation has the same structure as the Print-URI operation (see [STD92] section 4.2.2) except that the “job-id” (integer(1:MAX)) operation attribute MUST take the place of the “document-uri” (uri) operation attribute.

4.4 Job Proof Print REQUIRED Feature

The Proof Print Feature is additional REQUIRED functionality to allow a user to print a Proof Print Job and to save it as part of Jobjob processing in such a way that users can submit a request to print a copy of the Proof Print Job at a later time. A Client requests a Printer to print and save a Proof Print Job by supplying the “proof-print” (collection) Job Template attribute (see section 7.11)8.18) when submitting the Jobjob. In this case, the Printer retains the Proof Print Job indefinitely in the so-called Job Retention Phase (see [STD92] section 5.3.7.2 Partitioning of Job Sates) in the Job’sjob’s terminal state (‘completed’, ‘aborted’, or ‘canceled’) after processing it, rather than aging the Jobjob out after an implementation-defined period. In other words, a Proof Print Job is just a Retained Job that the Printer is retaining indefinitely. A Client can then request the Printer to reprint a copy of the Proof Print Job using the Reprocess-Job operation (using the original “copies” and “media” attributes - see section 4.3.1.1) and a modified copy of the Jobjob using the Resubmit-Job operation (see section 4.3.1.2).5.4). See section 12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template attribute for additional conformance requirements for clientsClients and Printers.

Page 36 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1001011091

1092109310941095109610971098109911001101

1102

11031104110511061107110811091110

1111

111211131114111511161117111811191120112111221123112411251126

102

Kennedy, Smith (Wireless & Standards Architect), 01/29/19,
Deprecated
Page 37: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

4.5 Job Storage OPTIONAL Feature

The Job Storage Feature is additional OPTIONAL functionality to allow a User to "store" a Job and its Documents in their originally submitted and unprocessed form, so that copies of that Job can be printed at a later time. From an IPP job state perspective, a "Stored Job" is a Retained Job that has the "job-storage" Job Status attribute. Upon achieving the 'completed' state, the Printer retains the Job indefinitely, until its originating user or the Printer's operator / administrator removes it.

The Client indicates its preference for the Job to become a Stored Job by specifying the "job-storage" Job Template attribute (section 8.16). The Printer uses the "job-storage" attribute to identify it as needing special handling. It will be listed in a special "Stored Jobs" list. Its visibility will depend on its access settings. would be visible to all users, or might only be visible to the originating user. A Client requests that a Job is stored by supplying the “job-store” (collection) Job Template attribute (see section XXX) when submitting the Job Creation operation.

As with the Job Save and Reprint Feature, the Printer retains the Job indefinitely in the Job Retention Phase (see [STD92] section 5.3.7.2 "Partitioning of Job States") in the job’s terminal state (‘completed’, ‘aborted’, or ‘canceled’) after processing it, rather than aging the job out after an implementation-defined period.

4.5.1 Creating Stored Jobs

A Job becomes a Stored Job when the "job-storage" Job Template is specified in its creation and it has reached the 'completed' state.

4.5.2 Reprinting Stored Jobs

This section defines the method by which to reprint a copy of the Saved Job using the Resubmit-Job operation. The Reprocess-Job operation, defined in [RFC3998], has been deprecated. The Resubmit-Job operation is defined in this document and operates on any Retained Job.

4.5.2.1 Reprinting Stored Jobs using the Resubmit-Job operation

The Resubmit-Job operation (section 5.4) re-processes a copy of any Retained Job with the ability to supply additional operation and Job Template attributes that will affect the processing of that copy of the Job by either overriding the values of existing attributes or providing additional attributes. The Resubmit-Job operation has the same structure as the Print-URI operation (see [STD92] section 4.2.2) except that the “job-id” (integer(1:MAX)) operation attribute MUST take the place of the “document-uri” (uri) operation attribute.

Page 37 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

103104

1127

112811291130113111321133

1134113511361137113811391140

1141114211431144

1145

11461147

1148

1149115011511152

1153

115411551156115711581159

105

Page 38: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

4.5.2.2 Reprinting Stored Jobs using the Printer Control Panel

Stored Jobs can be reprinted using the Printer's control panel (control console). The details of the user experience and presentation are beyond the scope of this document, but ought to reflect the semantics of the Job Storage feature defined in this IPP Job and PrinterExtensions – Set 2 v2.0 specification.

5. REQUIRED OperationsThis section defines the following IPP REQUIRED operations:

1. Cancel-Jobs - allows the operator or administrator for the Printer to cancel selected or all Not Completed Jobs.

2. Cancel-My-Jobs - allows a user to cancel selected or all his/her Not Completed Jobs.

3. Close-Job - allows a Client to close a multi-document job without supplying any additional documents.

4. Resubmit-Job - allows a user to request the printer to process a copy of a Retained Job with optional additional or modified attributes.

5. Reprocess-Job - allows a user to re-process an exact copy of a Retained Job. This operation is defined in [RFC3998]

5.1 Cancel-Jobs Operation

The REQUIRED Cancel-Jobs operation allows the Operator or Administrator for the Printer to cancel a list of Not Completed Jobs or all Not Completed Jobs on the Printer. This operation works like the Cancel-Job operation specified in [STD92] section 4.3.3, except that it works on a number of Jobs at once. If the Printer cannot cancel all of the requested Jobs successfully, it MUST NOT cancel any and MUST return an error code along with the list of offending job-ids. A Client MUST be able to supply and a Printer MUST support this operation in order to claim support of this Job and Printer Extensions - Set 2 Specification, respectively.

This operation allows a Client to cancel one or more Print Jobs from the time the job is created up to the time it is completed, canceled, or aborted. Since a specified Job might already be printing by the time a Cancel-Jobs operation is received, some media sheet pages might be printed before the job is actually terminated.

The Client specifies the set of candidate Jobs to be canceled by supplying and/or omitting the “job-ids” (1setOf integer(1:MAX)) (see section 5.1.1 below), First, the Printer MUST check the access rights of the requesting user to endure that it is the Operator or

Page 38 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1061071160

1161116211631164

1165

1166

11671168

11691170

11711172

11731174

11751176

1177

11781179118011811182118311841185

1186118711881189

119011911192

108

Page 39: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Administrator of the Printer (see Access Rights below). If this check succeeds, then (and only then) the Printer MUST accept or reject the request based on the current state of each of the candidate Jobs and transition each job to the indicated new state as shown in Table 3 (copied verbatim from [STD92], including the Rule 1 and 2 for the convenience of the reader). If any of the candidate Jobs cannot be canceled, the Printer MUST NOT cancel any Jobs and MUST return the indicated error status code along with the list of offending “job-id” values in the “job-ids” operation attribute (see section 5.1.2).

Table 3 - Legal job state transitions for Cancel-Jobs and Cancel-My-Jobs Operations

Current "job-state" New "job-state" IPP object's response status code and action

'pending' 'cancelled' 'successful-ok'

'pending-held' 'cancelled' 'successful-ok'

'processing' 'cancelled' 'successful-ok'

'processing' 'processing' 'successful-ok' See Rule 1

'processing-stopped' 'cancelled' 'successful-ok'

'processing-stopped' 'processing-stopped' 'successful-ok' See Rule 1

'completed' 'completed' 'successful-ok-ignored-or-substituted-attributes'

'cancelled 'cancelled' 'successful-ok-ignored-or-substituted-attributes'

'aborted' 'aborted' 'successful-ok-ignored-or-substituted-attributes'

Rule 1: If the implementation requires some measurable time to cancel a job in the 'processing' or 'processing-stopped' job states, the IPP object MUST add the 'processing-to-stop-point' value to the job's "job-state-reasons" attribute and then transition the job to the 'canceled' state when the processing ceases (see [STD92] section 5.3.8).

Access Rights: The authenticated user (see [STD92] section 9.3) performing this operation MUST be an operator or administrator of the Printer object (see [STD92] sections 1 and 9.5). Otherwise, the IPP object MUST reject the operation without canceling any Jobs and return: 'client-error-not-authorized' status code and MUST NOT return the "job-ids" operation attribute.

5.1.1 Cancel-Jobs Request

The following groups of attributes are part of the Cancel-Jobs Request:

Group 1: Operation Attributes

Natural Language and Character Set:

Page 39 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1091101193119411951196119711981199

1200

1201120212031204

12051206120712081209

1210

1211

1212

1213

111

Page 40: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1.

Target:

The "printer-uri" (uri) operation attribute MUST be supplied by the Client which defines the target for this operation as described in [STD92] section 4.1.5. The Client MUST NOT supply and the Printer MUST NOT support the “job-uri” (uri) operation attribute for this operation.

The “job-ids” (1setOf integer(1:MAX)) MAY be supplied by the Client in the request to explicitly indicate the “job-id” values of the candidate Jobs to be canceled. If the "job-ids" attribute is not supplied, the Printer MUST consider all Jobs that are cancelable according to Table 3 above as the candidate Jobs and cancel them all. The Client MUST be able to supply this attribute in order to claim conformance to this operation. The Printer MUST support this attribute with a list of “job-id” values.

"requesting-user-name" (name(MAX)):

The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client as described in [STD92] section 9.3.

"message" (text(127)):

The Client OPTIONALLY supplies this attribute. The Printer object OPTIONALLY supports this attribute. It is a message to the operator. This "message" attribute is not the same as the "job-message-from-operator" attribute. That attribute is used to report a message from the operator to the end user that queries that attribute. This "message" operation attribute is used to send a message from the Client to the operator along with the operation request. It is an implementation decision of how or where to display this message to the operator (if at all).

5.1.2 Cancel-Jobs Response

The following sets of attributes are part of the Cancel-Jobs 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] Appendix B and section 4.1.6.

Page 40 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

11211312141215

1216

1217121812191220

1221122212231224122512261227

1228

12291230

1231

12321233123412351236123712381239

1240

1241

1242

1243

1244124512461247

114

Page 41: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes as described in [STD92] section 4.1.4.2.

Group 2: Unsupported Attributes

If the Client had supplied the "job-ids" operation attribute in the request, and one or more of those specified Jobs were in the 'completed', 'canceled'. or 'aborted' states (see Table 3 above), the Printer MUST (1) accept the request, (2) return the 'successful-ok-ignored-or-substituted-attributes' status code, (3) return the “job-ids” operation attribute with the “job-id” values of the Jobs that could not be canceled. See [STD92] section 4.1.7 for details on returning Unsupported Attributes.

5.2 Cancel-My-Jobs operation

The REQUIRED Cancel-My-Jobs operation permits a user to cancel a list of their own Not Completed Jobs or all their own Not Completed Jobs on the Printer. This operation works like the Cancel-Job operation specified in [STD92] section 4.3.3, except that it works on a number of Jobs at once. If the Printer cannot cancel all of the requested Jobs successfully, it MUST NOT cancel any and MUST return an error code along with the list of offending job-ids. A Client MUST be able to supply and a Printer MUST support this operation in order to claim support of this Job and Printer Extensions - Set 2 Specification, respectively.

This operation allows a Client to cancel one or more Print Jobs from the time the job is created up to the time it is completed, canceled, or aborted. Since a specified Job might already be printing by the time a Cancel-My-Jobs operation is received, some media sheet pages might be printed before the job is actually terminated.

The Client specifies the set of candidate Jobs to be canceled by supplying and/or omitting the “job-ids” (1setOf integer(1:MAX)) (see section 5.2.1 below), First, the Printer MUST check the access rights of the requesting user against all of the candidate Jobs (see Access Rights below). If any of the candidate Jobs are not owned by the requesting user, the Printer MUST NOT cancel any Jobs and MUST return the 'client-error-not-authorized' error status code along with the list of offending “job-id” values in the “job-ids” operation attribute (see section 5.1.2). If this check succeeds, then (and only then) the Printer MUST accept or reject the request based on the current state of each of the candidate Jobs and transition each job to the indicated new state as shown in Table 3 above. If any of the candidate Jobs cannot be canceled, the Printer MUST NOT cancel any Jobs and MUST return the indicated error status code along with the list of offending “job-id” values in the “job-ids” operation attribute (see section 5.1.2).

Access Rights: If the Client supplied the "job-ids" attribute, the authenticated user (see [STD92] section 9.3) performing this operation MUST be the job owner of all the candidate

Page 41 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1151161248

12491250

1251

1252125312541255125612571258

1259

1260126112621263126412651266

1267126812691270

127112721273127412751276127712781279128012811282

12831284

117

Page 42: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Jobs. If any of the supplied "job-ids" specify Jobs that do not belong to the requesting user, the IPP object MUST (1) reject the operation without canceling any Jobs, (2) return: 'client-error-not-authorized', and (3) MUST return the "job-ids" operation attribute with any specified Jobs that are not owned by the requesting user (see section 5.2.2 below).

5.2.1 Cancel-My-Jobs Request

The following groups of attributes are part of the Cancel-My-Jobs Request:

Group 1: Operation Attributes

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1.

Target:

The "printer-uri" (uri) operation attribute MUST be supplied by the Client which defines the target for this operation as described in [STD92] section 4.1.5. The Client MUST NOT supply, and the Printer MUST NOT support, the “job-uri” (uri) operation attribute for this operation.

The “job-ids” (1setOf integer(1:MAX)) MAY be supplied by the Client in the request to explicitly indicate the “job-id” values of the candidate Jobs to be canceled. If the "job-ids" attribute is not supplied, the Printer MUST consider all Jobs that are both (1) owned by the requesting user AND (2) are cancelable according to Table 3 above as the candidate Jobs and cancel them all. The Client MUST be able to supply this attribute in order to claim conformance to this operation. The Printer MUST support this attribute with a list of “job-id” values.

"requesting-user-name" (name(MAX)):

The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client as described in [STD92] section 9.3.

"message" (text(127)):

The Client OPTIONALLY supplies this attribute. The Printer object OPTIONALLY supports this attribute. It is a message to the operator. This "message" attribute is not the same as the "job-message-from-operator" attribute. That attribute is used to report a message from the operator to the end user that queries that attribute. This "message" operation attribute is used to send a message from the Client to the operator along with the operation request. It is an implementation decision of how or where to display this message to the operator (if at all).

Page 42 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1181191285128612871288

1289

1290

1291

1292

12931294

1295

1296129712981299

13001301130213031304130513061307

1308

13091310

1311

13121313131413151316131713181319

120

Page 43: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

5.2.2 Cancel-My-Jobs Response

The following sets of attributes are part of the Cancel-My-Jobs 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] Appendix B and section 4.1.6.

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes as described in [STD92] section 4.1.4.2.

Group 2: Unsupported Attributes

If the Client had supplied the "job-ids" operation attribute in the request, and one or more of those specified Jobs failed the job status check defined in Table 3 above, the Printer MUST (1) accept the request, (2) return the 'successful-ok-ignored-or-substituted-attributes' status code, (3) return the “job-ids” operation attribute with the “job-id” values of the Jobs that could not be canceled. See [STD92] section 4.1.7 for details on returning Unsupported Attributes.

5.3 Close-Job Operation

The REQUIRED Close-Job operation allows a Client to close a multi-document job, i.e., a job that was opened with a Create-Job operation [STD92] followed by zero or more Send-Document and/or Send-URI operations [STD92]. It is semantically similar to a Send-Document operation with the "last-document" operation attribute supplied with a 'true' value with no document data (except that with the Close-Job operation the Printer MUST NOT add an additional document object). See [STD92] sections 4.3.1 Send-Document Operation and 3.3.2 Send-URI Operation.

A Client SHOULD check to see if the Printer supports the Close-Job operation by querying the values of the "operations-supported" Printer Description attribute.

Access Rights: The authenticated user (see [STD92] section 9.3) performing this operation must either be the job owner (as determined in the Create-Job operation) or an operator or administrator of the Printer object (see [STD92] sections 1 and 9.5). Otherwise, the IPP object MUST reject the operation and return: 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate.

Page 43 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1211221320

1321

1322

1323

1324132513261327

1328

13291330

1331

1332133313341335133613371338

1339

1340134113421343134413451346

13471348

13491350135113521353

123

Page 44: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

5.3.1 Close-Job Request

The following attributes are part of the Close-Job Request:

Group 1: Operation Attributes

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes as described in [STD92] section 4.1.4.1.

Target:

The "printer-uri" (uri) plus "job-id" (integer(1:MAX)) which define the target for this operation as described in [STD92] section 4.1.5. The Client MUST NOT supply and the Printer MUST NOT support the “job-uri” (uri) operation attribute for this operation.

"requesting-user-name" (name(MAX)):

The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client as described in [STD92] section 9.3.

5.3.2 Close-Job Response

The following attributes are part of the Close-Job 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] Appendix B and section 4.1.6.

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes as described in [STD92] section 4.1.4.2.

Group 2: Unsupported Attributes

See [STD92] section 4.1.7 for details on returning Unsupported Attributes.

Group 3: Job Object Attributes

Page 44 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1241251354

1355

1356

1357

13581359

1360

1361136213631364

1365

13661367

1368

1369

1370

1371

1372137313741375

1376

13771378

1379

1380

1381

126

Page 45: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

This is the same set of attributes as described in the Print-Job response (see [STD92] section 4.2.1.2).

5.4 Resubmit-Job Operation

The REQUIRED Resubmit-Job operation allows a Client to start a copy of a Retained Job that is retained in the queue after processing has completed (see [STD92] section 5.3.7.2) supply changes to attributes that were supplied in the original Job and to supply additional attributes for that copy before starting. A Client MUST be able to supply and a Printer MUST support this operation in order to claim support of this IPP Job and PrinterExtensions – Set 2 v2.0, respectively.

The new job is moved to the 'pending' or 'pending-held' job state and restarts at the beginning on the same IPP Printer object. If any of the documents in the job were passed by reference (Print-URI or Send-URI), the Printer MUST re-fetch the data, since the semantics of Resubmit-Job are to repeat all Job processing. The Job Description attributes that accumulate job progress, such as "job-impressions-completed", "job-media-sheets-completed", and "job-k-octets-processed", MUST be reset to 0 so that they give an accurate record of the new job. The job object MUST use new values for the "job-uri" and "job-id" attribute values as assigned by the Printer.

If the Retained Job already contain the same operation or Job Template attribute with a different value, the value supplied in the Resubmit-Job operation MUST override (if supported by the Printer). If the Retained Job does not contain such an Operation or Job Template attribute, the value supplied with the Resubmit-Job operation MUST apply (if supported by the Printer). When reprinting a Saved Job, the Printer MUST NOT copy the “job-save-disposition” attribute to the copy; otherwise, the job would be saved again. Only if the Client supplies the “job-save-disposition” attribute in the Resubmit-Job operation will the job be saved again. Similarly, when reprinting a Proof Print Job, the Printer MUST NOT copy the “proof-print” attribute to the job copy; otherwise, the job would be proofed again. Only if the Client supplies the “proof-print” attribute in the Resubmit-Job operation will the job be proofed again.

The IPP object MUST accept or reject the Resubmit-Job request based on the job's current state as follows:

Table 4 - State Transition Table for the Resubmit-Job operation

"job-state" IPP object's response status code and action

'pending' 'client-error-not-possible'

'pending-held' 'client-error-not-possible'

'processing' 'client-error-not-possible'

Page 45 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

12712813821383

1384

138513861387138813891390

13911392139313941395139613971398

13991400140114021403140414051406140714081409

14101411

1412

129

Page 46: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'processing-stopped' 'client-error-not-possible'

'completed' 'successful-ok' - A copy of the job is started over.

'completed' 'client-error-not-possible' - see Rule 1

'cancelled' 'successful-ok' - A copy of the job is started over.

'cancelled' 'client-error-not-possible' - see Rule 1

'aborted' 'successful-ok' - A copy of the job is started over.The new copy of the job will abort again, if the abort condition is still true.

'aborted' 'client-error-not-possible' - see Rule 1

Rule 1: If the Job Retention Period has expired for the job in this state, then the IPP object rejects the operation. See [STD92] section 5.3.7.2.

Note: In order to prevent a user from inadvertently restarting a job in the middle, the Resubmit-Job request is rejected when the job is in the 'processing' or 'processing-stopped' states. If in the future an operation is needed to hold or restart Jobs while in these states, it will be added as an additional operation, rather than overloading the Resubmit-Job operation, so that it is clear that the user intended that the current job not be completed.

Access Rights: The authenticated user (see [STD92] section 9.3) performing this operation must either be the job owner or an operator or administrator of the Printer object (see [STD92] sections 1 and 9.5). Otherwise, the IPP object MUST reject the operation and return: 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate.

5.4.1 Resubmit-Job Request

The groups and attributes are the same as for a Print-Job request (see [STD92] section 4.2.1), except that the Client MUST NOT supply the “document-format” attribute and MUST NOT append document data to the request. If the Client does supply “document-format”, the Printer MUST return: ‘client-error-bad-request’. The following additional Group 1 Operation attributes are defined:

Target:

The "printer-uri" (uri) plus "job-id" (integer(1:MAX)) which define the target for this operation as described in [STD92] section 4.1.5. The Client MUST NOT supply and the Printer MUST NOT support the “job-uri” (uri) operation attribute for this operation.

Page 46 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

130131

14131414

141514161417141814191420

14211422142314241425

1426

14271428142914301431

1432

1433143414351436

132

Page 47: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

5.4.2 Resubmit-Job Response

The groups and attributes are the same as for a Cancel-Job response (see [STD92] section 4.3.3.2).

5.5 Reprocess-Job operation

6. The REQUIRED Reprocess-Job operation allows a user to re-process an exact copy of a Retained Job. This operation is defined in New Attributes

[4.6] Operation Attributes

[RFC3998].

7. New Operation Attributes For Existing OperationsThis section defines additional Operation attributes for existing IPP operations.

7.1[4.7] job-password (octetString(255)) for Job Creation operations

ThisThis Operation attribute may OPTIONALLY be included in the request of the following Job Creation operations: Print-Job, Print-URI, and Create-Job.

The OPTIONAL "job-password" operation attribute allows a user to perform Secure Print. The user enters a password in the Jobjob submitting application which is encrypted by the Client using one of the methods specified by the "job-password-encryption-supported" attribute. The encrypted password is sent to the Printer as the value of the "job-password" attribute. If a "job-password" value is provided, other than a zero-length string, the Printerprinter MUST hold the Jobjob in the 'pending-held' state, and the 'job-password-wait' value is added to the "job-state-reason" attribute.

The user enters the same password at the device to release the Jobjob for printing. The Printer uses the same encryption method specified in the "job-password-encryption" attribute on this password. The Printer MUST resume the print Jobjob when the locally-supplied encrypted password matches the value of the "job-password" attribute. The method in which the password is entered and validated at the Printer is implementation dependent.

The "job-password" attribute may OPTIONALLY be included in the request of the following Job Creation operations: Print-Job, Print-URI, and Create-Job. The "job-password" attribute value MUST NOT be returned in a Get-Job-Attributes response.

Page 47 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1331341437

14381439

1440

1441

1442

1443

1444

1445

1446

1447

1448

14491450

1451145214531454145514561457

145814591460146114621463

146414651466

135

Page 48: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Other jobsJobs may be printed before the release of the Secure Print Job from the 'pending-held' state. If the Secure Print Job is released by the user while another Jobjob is printing, the Secure Job MUST NOT resume printing until the current Jobjob is done printing. The Secure Job SHOULD be the next Jobjob printed after the current job, unless there is another Jobjob in the Printer which has a higher priority than the Secure Job as determined by the "job-priority" attribute.

7.2[4.8] job-password-encryption (type2 keyword | name(MAX)) for Job Creation operations

ThisThe "job-password-encryption" Operation attribute specifies the type of encryption used for the value of the "job-password" attribute in the request of the following Job Creation operations: Print-Job, Print-URI, and Create-Job. The Client MUST supply this operation attribute whenever the "job-password" attribute is supplied.

The valid keyword values are the same as the valid values for the "job-password-encryption-supported" attribute (See description below in section 12.19).

7.3[4.9] job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation

ThisThe “job-ids” (1setOf integer(1:MAX)) Operation attribute is defined for use with the Get-Jobs operation (see [STD92]. section 4.2.6). A Client MUST be able to supply, and a Printer MUST support, the "job-ids" operation attribute in a Get-Jobs operation in order to claim support of this Job and Printer Extensions - Set 2 Specification, respectively. See also section 10.2 job-ids-supported (boolean) Printer Description attribute.

The “job-ids” Operation attribute, if supplied, specifies a list of target jobsJobs to be returned, rather than all jobsJobs, in the response to the Get-Jobs operation specified in [STD92]. section 4.2.6. If the Client supplies the "job-ids" Operation attribute, the Client MUST NOT also supply any of the following Operation attributes in the same request: "limit", "my-jobs", or "which-jobs". If the Client does supply the "job-ids" Operation attribute with any of the following Operation attributes: "limit", “my-jobs”. or "which-jobs", the Printer MUST reject the request and return the ‘client-error-conflicting-attributes’ status code as specified in [STD92]. Appendix B.1.4.15.

Page 48 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

136137146714681469147014711472

1473

1474

1475147614771478

14791480

1481

14821483148414851486

14871488148914901491149214931494

138

Page 49: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

7.4[4.10] job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation

This attribute specifies a list of target jobs to be purged, rather than all jobs. If this attribute is not supplied, the Printer MUST purge all jobs. ThisThe “job-ids” (1setOf integer(1:MAX)) Operation attribute is defined for use with the Purge-Jobs operation (see [STD92]. section 4.3.7). If a Client or Printer support the Purge-Jobs operation, such a Client MUST be able to supply and a Printer MUST support the "job-ids" operation in the Purge-Jobs operation in order to claim support of this IPP Job and Printer Extensions – Set 2 v2.0Job and Printer Extensions - Set 2 Specification, respectively. See also section 10.2 job-ids-supported (boolean) Printer Description attribute.

[4.11] Job Status Attributes

[4.11.1] The “job-save-printer-make-and-model (text(127))

Thisids” Operation attribute identifies the make and model, if supplied, specifies a list of the output device which saved this job. The values are the same as the corresponding "printer-make-and-model" Printer Description attribute [STD92].target Jobs to be purged, rather than all Jobs. If this attribute is present in the saved Job, then only Printers that have the same make and model will be able to print the saved Job with identical appearance. Other make and models MAY be able to print the job, but not necessarily with identical appearance, provided that the Printer supports the “save-document-format” value of the saved job. If this attribute is not present in the saved Job Instructions and the Job object after saving, then the saved Job was saved in a format that can be printed on any output device and will generate the same appearance provided that the Printer supports the “save-document-format” value of the saved job.

If the Printer implementation supports the "job-save-disposition" Job Template attribute in section 7.9, then it is REQUIRED that the Printer support the "printer-make-and-model" Printer Description attributenot supplied, the Printer MUST purge all Jobs.

8.[5.] Job Template AttributesJob Template attributes describe Jobjob processing behavior and conform to a set of rules. See [STD92] for the complete text of the rules that apply to each Job Template attribute called "xxx".

8.1[5.1] feed-orientation (type2 keyword)

ThisThe OPTIONAL "feed-orientation" Job Template attribute specifies the media edge which is fed into the print engine from the paper tray. Long-edge-first is the preferred method of feeding media to attain the fastest printing speed. Certain media will have adverse effects when fed from a certain direction; for instance, some labels will peel off in the paper path when fed long-edge-first, but not when fed short-edge-first. The feed

Page 49 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

139140

1495

14961497149814991500150115021503

1504

1505

15061507150815091510151115121513151415151516

151715181519

1520

152115221523

1524

15251526152715281529

141

Page 50: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

orientation also may allow the Jobjob to be finished in more acceptable ways; for instance, a stationary finishing stapler may provide a preferred stapling location when the media is fed short-edge-first.

When this attribute is specified, the Printerprinter selects media that has already been loaded in the requested orientation. If the media is not currently loaded in the requested orientation, the Jobjob may enter the 'processing-stopped' state with a "job-state-reason" of 'resources-are-not-ready'.

Standard keyword values are:

Keyword Description

'long-edge-first' The specified media is fed using the long edge first.

'short-edge-first' The specified media is fed using the short edge first.

This attribute allows a PDL interpreter to determine which way to send the image data to the frame buffer for imposition on the media. Although Postscript supports this attribute as a PDL construct, support in other PDLs such as PCL and TIFF are dependent on the implementation. Therefore, this attribute is defined to be specified as a Job Template attribute such that printers may use this feature with PDLs other than Postscript. Some Printerprinter implementations may be able to internally determine the best feed orientation to use so that if this attribute was sent over the wire to the printer, the attribute would be ignored.

This attribute has no special interaction with the "orientation-requested" attribute. It is possible to print a portrait document on either SEF (short edge feed) or LEF (long edge feed) paper, and likewise for landscape documents. However, this may affect staple placement and other finishing, depending on the device's capabilities.

This attribute applies as to how the media is loaded into the tray rather than the media itself, and is therefore a job-level attribute rather than a media collection member attribute. This attribute may be used with "overrides" just as any other Job Template attribute (see [PWG5100.6]).

8.2[5.2] font-name-requested (name(MAX))

This attributeThe OPTIONAL "font-name" Job Template enables a Client to specify what default font name the Printerprinter MUST use to print a Jobjob if the document data is in a format that does not have inherent font information (e.g., ‘text/plain’). For document formats which have inherent font information (such as PostScript), this attribute will be ignored and will NOT override that information.

For some document formats (such as 'application/postscript'), the desired default font name of the print-stream pages is specified within the document data. This information is

Page 50 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

142143153015311532

1533153415351536

1537

15381539154015411542154315441545

1546154715481549

1550155115521553

1554

15551556155715581559

15601561

144

Smith Kennedy, 08/29/18,
MUST?
Page 51: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

generated by a device driver prior to the submission of the print Jobjob. Other document formats (such as 'text/plain') do not include the notion of desired font name within the document data. In the latter case it is possible for the Printer object to bind the desired font name to the document data after it has been submitted. It is expected that a Printer object would only support "font-name-requested" for some document formats (e.g., 'text/plain' or 'text/html') but not others (e.g., 'application/postscript'). This PDL-dependent behavior is no different than any other Job Template attribute since a Printer object may support or not support any Job Template attribute based on the document format supplied by the clientClient. However, a special mention is made here since it is very likely that a Printer object will support "font-name-requested" for only a subset of the supported document formats.

This attribute can be specified as a Document Override that affects the Input-Document. The use of this attribute on a Page override basis is not supported since changing the font characteristics can affect the pagination.

NOTE: The use of the “xxx-requested” pattern for attribute names indicates that the value of the attribute is to be used ONLY in the case when a value for the attribute is not contained within the source document. This value will override the printer’s default value but will not override the source document’s value. See the description of the “orientation-requested” Job Template attribute later in [STD92].

8.3[5.3] font-size-requested (integer (1:MAX))

ThisThe OPTIONAL "font-size-requested" Job Template attribute enables a Client to specify what default font size the Printerprinter MUST use to print a Jobjob if the document data is in a format that does not have inherent font information (e.g., ‘text/plain’). For document formats which have inherent font information (such as PostScript), this attribute will be ignored and will NOT override that information.

For some document formats (such as 'application/postscript'), the desired default font size of the print-stream pages is specified within the document data. This information is generated by a device driver prior to the submission of the print Jobjob. Other document formats (such as 'text/plain') do not include the notion of desired font size within the document data. In the latter case it is possible for the Printer object to bind the desired font size to the document data after it has been submitted. It is expected that a Printer object would only support "font-size-requested" for some document formats (e.g., 'text/plain' or 'text/html') but not others (e.g., 'application/postscript'). This PDL-dependent behavior is no different than any other Job Template attribute since a Printer object may support or not support any Job Template attribute based on the document format supplied by the clientClient. However, a special mention is made here since it is very likely that a Printer object will support "font-size-requested" for only a subset of the supported document formats.

The “font-size-requested” units are points, equivalent to 1/72nd of an inch.

Page 51 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

14514615621563156415651566156715681569157015711572

157315741575

15761577157815791580

1581

15821583158415851586

1587158815891590159115921593159415951596159715981599

1600

147

Smith Kennedy, 09/04/18,
Is this appropriate wording?
Page 52: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

This attribute can be specified as a Document Override that affects the Input-Document. The use of this attribute on a Page override basis is not supported since changing the font characteristics can affect the pagination.

Note: The use of the “xxx-requested” pattern for attribute names indicates that the value of the attribute is to be used ONLY in the case when a value for the attribute is not contained within the source document. This value will override the printer’s default value but will not override the source document’s value. See the description of the “orientation-requested” Job Template attribute in [STD92].

[5.4] job-delay-output-until (type2 keyword | name(MAX))

[5.5] job-cancel-after (integer(1:MAX))

This Job Template attribute specifies the maximum number of seconds that are allowed for processing a Job. The cancel timer does not begin until the Job enters the 'processing' state. If the Job is canceled because of this timer, the Printer MUST add the 'job-canceled-after-timeout' keyword (section 13.6.1) to the "job-state-reasons" Job Status attribute.

8.4 j ob-delay-output-until (type2 keyword | name(MAX))

The OPTIONAL "job-delay-output-until" Job Template attribute permits the Client to specify a time period in the future until which the Printer is to delay the output. If the specified time period has not yet arrived, the Printer MUST set the Job'sjob's "job-state-reasons" value to 'job-delay-output-until-specified'. However, the Printer MAY perform processing before the time period arrives, but the Printer MUST NOT produce any output until the time period arrives. When the time period arrives, the Job MUST become a candidate for output (including any processing required to produce the output).

Standard keyword values for named time periods are:

Keyword Description

'no-delay-output' There are no reasons to delay output

However, the Printer MAY perform processing before the time period arrives, but the Printer MUST NOT produce any output until the time period arrives. When the time period arrives, the Job MUST become a candidate for output (including any processing required to produce the output).

Standard keyword values for named time periods are:

Keyword Description

'no-delay-output' There are no reasons to delay output

Page 52 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

148149160116021603

16041605160616071608

1609

1610

1611161216131614

1615

1616161716181619162016211622

1623

1624162516261627

1628

150

Page 53: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'indefinite' The Job output is delayed indefinitely until a Client performs a Set-Job-Attributes operation [RFC3380][RFC3380][RFC3380] with either of the delay output Operation attributes: "job-delay-output-until" or "job-delay-output-until-time"

'indefinite' The Job output is delayed indefinitely until a Client performs a Set-Job-Attributes operation [RFC3380] with either of the delay output Operation attributes: "job-delay-output-until" or "job-delay-output-until-time"

'day-time' During the day

'evening' During the evening

'night' During the night

'weekend' During the weekend

'second-shift' During the second shift (after close of business)

'third-shift' During the third shift (after midnight)

Even though a Jobjob supplied with the "job-delay-output-until" Job Template attribute may be in the 'processing-stopped' state, the Client MUST NOT supply and the Printer MUST NOT support the Resume-Job ([RFC3998]) to move the Jobjob out of the 'processing-stopped' state. The only way for a Client to alter the delay period for a Jobjob and for the Printer to support altering the delay period for a Jobjob is by supporting the Set-Job-Attributes operation ([RFC3380].). See section 8.2 below.

The Client MUST NOT supply both the "job-delay-output-until" and "job-delay-output-until-time" (see section 7.5 below) Job Template attributes in a Job Creation request. If the Client supplies such a malformed request by supplying both, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code (see [STD92].

). Note: it is not an error for a Client to supply and a Printer to support a "job-hold-xxx" and a "job-delay-output-xxx" in the same Job Creation operation, since they control separate aspects of Jobjob processing.

A Flow Diagram for Job Creation with the "job-delay-output-until" attribute is shown in Figure 1 below. The semantics of the "job-delay-output-until" attribute are similar to the "job-hold-until" Job Template attribute [STD92] (see Table 5 below), except that for the "job-delay-output-until" attribute the A Flow Diagram for Job Creation with the "job-delay-output-until" attribute is shown in Figure 1 below. The semantics of the "job-delay-output-until" attribute are similar to the "job-hold-until" Job Template attribute [STD92] (see Table 5 below), except that for the "job-delay-output-until" attribute the Jobjob is not put into the 'pending-held' state while waiting for the time period to arrive. Instead, the Printer MAY

Page 53 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

151152

162916301631163216331634

1635163616371638

163916401641

16421643164416451646164716481649

153

Page 54: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

process the Jobjob normally, i.e., by putting the Jobjob into the 'pending' and 'processing' states. However, the Printer MUST NOT produce any output until the specified time period arrives. However, the Printer MUST NOT produce any output until the specified time period arrives. If the Printer completes the processing and the specified time period has not yet arrived, the Printer MUST suspend the processing of the Jobjob by putting the Jobjob in the 'processing-stopped' state, and MUST NOT delay processing or output of any other Jobs while waiting for the specified time period to arrive. When the time period does arrive, the Printer MUST remove the 'job-delay-output-until-specified' value from the Job'sjob's "job-state-reasons" attribute and MAY add the 'job-queued' [STD92] value to the Job'sjob's "job-state-reasons" attribute. Then the Jobjob can be scheduled and processed, i.e., the Jobjob enters the 'processing' state and produces the output.

If the Printer implementation is not able to put such a delayed output Jobjob into the 'processing-stopped' state and process other Jobs, the Printer implementation MUST behave identically to that of the "job-hold-until" attribute and put the Jobjob into the 'pending-held' state immediately (instead of 'pending' and 'processing'), set the "job-state-reasons" to 'job-delay-output-until-specified' (instead of 'job-hold-until-specified'), and wait for the specified time period to arrive to begin processing the Jobjob (see the description of the "job-hold-until" attribute in [STD92]).

Table 5 - Comparison of "job-delay-output-until" with "job-hold-until"

Description "job-delay-output-until" "job-hold-until"

Table 6 - Comparison of "job-delay-output-until" with "job-hold-until"

Description "job-delay-output-until" "job-hold-until"

Initial Job states before the specified time period is reached

'pending', 'processing', 'processing-stopped' 'pending-held

Initial job states before the specified time period is reached

'pending', 'processing', 'processing-stopped' 'pending-held

Job states when the specified time period is reached 'pending', 'processing' 'pending', 'processing'

"job-state-reasons" value "job-delay-output-until-specified" "job-hold-until-specified"

Page 54 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

15415516501651165216531654165516561657165816591660

1661166216631664166516661667

1668

1669

156

Page 55: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

[ specified time period is in the future ]

[ no hold reasons apply ]

[ specified time period is now or in the past ]

"status-code" = 'client-error-attributes-or-values-not-valid'

[ matches ]

"status-code" = 'successful-ok-ignored-or-substituted-attributes"

[ does not match ]

[ "ipp-fidelity" is TRUE ]

[ "ipp-fidelity" is FALSE ]

Create Job"job-delay-output-until"

Match the specified keyword time period value of "job-delay-output-until" with the values of "job-delay-output-until-supported"

Reject Request

Change "job-delay-output-until" to a valid value

"job-state" = 'pending'

"job-state" = 'pending-held'

"status-code" = 'successful-ok'

[ hold reasons apply ]

"job-state-reasons" = 'job-delay-output-until-specified'Note: this is NOT a hold reason

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Page 55 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

Figure 2 - Job Creation Operation Flow Diagram with "job-delay-output-until" specified

157158

1670

159

Page 56: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

8.5[5.6] job-delay-output-until-time (dateTime)

This The OPTIONAL "job-delay-output-until-time" Job Template attribute permits the Client to specify a date and time in the future after which the Printer is to delay the output. If the specified date and time has not yet arrived, the Printer MUST set the Job'sjob's "job-state-reasons" value to 'job-delay-output-until-specified'. However, the Printer MAY perform processing before the specified date and time occurs, but the Printer MUST NOT produce any output until the date and time occurs.

Page 56 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

160161

1671

1672

1673

167416751676167716781679

162

Page 57: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

A Flow Diagram for Job Creation with the "job-delay-output-until-time" attribute is shown in Figure 2 below. However, the Printer MAY perform processing before the specified date and time occurs, but the Printer MUST NOT produce any output until the date and time occurs.

A Flow Diagram for Job Creation with the "job-delay-output-until-time" attribute is shown in Figure 2 below. A Time Sequence Diagram for a Jobjob with "job-hold-until-time", a Jobjob with "job-delay-output-until-time", and 4 ordinary print Jobs is shown in Figure 4 below. The semantics of the "job-delay-output-until-time" attribute are similar to the "job-hold-until-time" Job Template attribute (see Sectionsection 7.6 and Table 6, except that for the "job-delay-output-until-time" attribute the Jobjob is not put into the 'pending-held' state while waiting for the date and time to occur. Instead, the Printer MAY process the Jobjob normally (i.e., by putting the Jobjob into the 'pending' and 'processing' states). However, the Printer MUST NOT produce any output until the specified date and time occurs. However, the Printer MUST NOT produce any output until the specified date and time occurs. If the Printer completes the processing and the specified date and time has not yet occurred, the Printer MUST suspend the processing of the Jobjob by putting the Jobjob in the 'processing-stopped' state, and MUST NOT delay processing or output for any other Jobs while waiting for the specified date and time to occur. When the date and time does occur, the Printer MUST remove the 'job-delay-output-until-specified' value from the Job'sjob's "job-state-reasons" attribute and MAY add the 'job-queued' [STD92] value to the Job'sjob's "job-state-reasons" attribute. Then the Jobjob can be scheduled and processed, i.e., the Jobjob enters the 'processing' state and produces the output.

If the Printer implementation is not able to put such a delayed output Jobjob into the 'processing-stopped' state and process other Jobs, the Printer implementation MUST behave identically to that of the "job-hold-until-time" attribute and put the Jobjob into the 'pending-held' state immediately (instead of 'pending' and 'processing'), set the "job-state-reasons" to 'job-delay-output-until-specified' (instead of 'job-hold-until-specified'), and wait for the specified date and time to occur to begin processing the Jobjob (see the description of the "job-hold-until-time" attribute in 7.6).

Even though a Jobjob supplied with the "job-delay-output-until-time" Job Template attribute may be in the 'processing-stopped' state, the Client MUST NOT supply and the Printer MUST NOT support the Resume-Job ([RFC3998]) to move the Jobjob out of the 'processing-stopped' state. The only way for a Client to alter the delay time for a Jobjob and for the Printer to support altering the delay time for a Jobjob is by supporting the Set-Job-Attributes operation ([RFC3380]). See section 8.2 below.

The Client MUST NOT supply both the "job-delay-output-until" (see section 7.4 above) and "job-delay-output-until-time" Job Template attributes in a Job Creation request. If the Client supplies such a malformed request by supplying both, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code (see [STD92].). Note: it is not an error for a Client to supply and a Printer to support a "job-hold-xxx" and a "job-delay-

Page 57 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1631641680168116821683

168416851686168716881689169016911692169316941695169616971698169917001701

1702170317041705170617071708

170917101711171217131714

17151716171717181719

165

Page 58: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

output-xxx" in the same Job Creation operation, since they control separate aspects of Jobjob processing.

Table 7 - Comparison of "job-delay-output-until-time" with "job-hold-until-time"

Description "job-delay-output-until" "job-hold-until"

Table 8 - Comparison of "job-delay-output-until-time" with "job-hold-until-time"

Description "job-delay-output-until" "job-hold-until"

Initial Job states before the specified time period is reached

'pending', 'processing', 'processing-stopped' 'pending-held

Initial job states before the specified time period is reached

'pending', 'processing', 'processing-stopped' 'pending-held

Job states when the specified time period is reached 'pending', 'processing' 'pending', 'processing'

"job-state-reasons" value "job-delay-output-until-specified" "job-hold-until-specified"

Page 58 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

16616717201721

1722

1723

1724

168

Page 59: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

[ "job-delay-output-until-time" GT "printer-current-time" (DateTime is in the future) ]

[ no hold reasons apply ]

[ "job-delay-output-until-time" LE "printer-current-time" (DateTime is now or in the past) ]

"status-code" = 'client-error-attributes-or-values-not-valid'

[ number of seconds <= "job-delay-output-until-time-supported" ]

"status-code" = 'successful-ok-ignored-or-substituted-attributes"

[ else ]

[ "ipp-fidelity" is TRUE ]

[ "ipp-fidelity" is FALSE ]

Create Job"job-delay-output-until-time"

Calculate seconds to hold job"job-delay-output-until-time" - "printer-current-time"

Reject Request

Change "job-delay-output-until-time" to a valid value

"job-state" = 'pending'

"job-state" = 'pending-held'

"status-code" = 'successful-ok'

[ hold reasons apply ]

"job-state-reasons" = 'job-delay-output-until-specified'Note: this is NOT a hold reason

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

8.6[5.7] job-hold-until-time (dateTime)

The OPTIONAL "job-hold-until" Job Template attribute permits the Client to specify the date and time after which the Job MUST become a candidate for processing.

Note: The Client has the choice to present the "job-hold-until-time" to the end user as either a delta time (the amount of time until the job is no longer held), or a fixed time when the job will no longer be held. The fixed time is represented using the appropriate time zone(s) (usually the Client's time zone, or the Printer's time zone, or both if the Client is capable). See the description of "printer-current-time" in [STD92].

Page 59 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

Figure 3 - Job Creation Operation Flow Diagram with "job-delay-output-until-time" specified

169170

1725

1726

1727

17281729

17301731173217331734

171

Page 60: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

If the Printer supports the "job-hold-until-time" attribute, the "job-hold-until" attribute MUST also be supported. However, if the "job-hold-until" attribute is supported, the "job-hold-until-time" attribute NEED NOT be supported. If the Printer supports the "job-hold-until-time" attribute, the "printer-current-time" (dateTime) Printer Description attribute MUST also be supported.

The Client MUST NOT supply both the "job-hold-until" and "job-hold-until-time" Job Template attributes in a Job Creation request. If the Client supplies such a malformed request by supplying both, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code (see [STD92]). Note: it is not an error for a Client to supply and a Printer to support a "job-hold-xxx" and a "job-delay-output-xxx" in the same Job Creation operation, since they control separate aspects of job processing.

A Flow Diagram for Job Creation operations with the "job-hold-until-time" attribute is shown in Figure 3 below. A Time Sequence Diagram for a job with "job-hold-until-time", a job with "job-delay-output-until-time", and 4 ordinary print Jobs is shown in Figure 4 below. A Hold Job request is sent by the Client with a "job-hold-until-time" value specified as a dateTime. The Printer calculates the number of seconds between the "job-hold-until-time" value and the "printer-current-time" value. If this number of seconds is NOT in the range specified by the Printer's "job-hold-until-time-supported" attribute value, then the Printer either:

1. rejects the request with the 'client-error-attributes-or-values-not-supported' status code (see [STD92]) if "ipp-attribute-fidelity" is 'true'; or

2. accepts the request with the 'successful-ok-ignored-or-substituted-attributes', if "ipp-attribute-fidelity" is 'false'. Also:

a. The Printer MUST return the "job-hold-until-time" attribute and the unsupported value in the Unsupported Attributes group of the operation response.

b. If the "job-hold-until-time" value is earlier than the "printer-current-time" value plus the minimum value of "job-hold-until-time-supported", the Printer MUST set the value of the Job's "job-hold-until-time" to the current dateTime plus the minimum time.

c. If the "job-hold-until-time" value is later than the "printer-current-time" value plus the maximum value of "job-hold-until-time-supported", the Printer MUST set the value of the Job's "job-hold-until-time" to the current dateTime plus the maximum time.

If the job is accepted, the Printer then determines the state in which to place this job. If the dateTime value is equal to or sooner than the Printer's "printer-current-time" dateTime value, then no hold is placed on the job and the job moves into the pending state (assuming there are no other reasons to hold the job).

Page 60 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

17217317351736173717381739

174017411742174317441745

1746174717481749175017511752

17531754

17551756

175717581759

1760176117621763

1764176517661767

1768176917701771

174

Page 61: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

If the value of this attribute specifies a time period that is in the future, the Printer 1) MUST add the 'job-hold-until-specified' value to the job's "job-state-reasons" attribute, 2) MUST move the job to the 'pending-held' state, and 3) MUST NOT schedule the job for printing until the specified time arrives. When the specified time arrives, the Printer MUST remove the 'job-hold-until-specified' value from the job's "job-state-reason" attribute and, and then if there are no other job state reasons that keep the job in the 'pending-held' state, the Printer MUST consider the job as a candidate for processing by moving the job to the 'pending' state.

Page 61 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

Figure 4 - Job Creation Operation Flow Diagram with "job-hold-until-time" specified

17517617721773177417751776177717781779

1781

1782

1783

177

Page 62: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Figure 4 below shows a Time Sequence Diagram for an implementation of 6 Jobs, where Job 1 is a Job Delay Output Job that processes the job partly before the delay date-time arrives, Job 2 is a Hold Job, and Jobs 3 through 6 are ordinary print Jobs that complete successfully. Jobs 3-5 are submitted before either of the Job Hold Time (B) and the Job Delay Time (A) occurs. Job 6 is submitted after the Job Hold Time (B) but before the Job Delay Time (A) occurs. OPTIONAL "job-state-reasons" values are shown in parenthesis.

Page 62 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

Figure 5 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs

178179178417851786178717881789

1790

1791

1792

180

Page 63: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

8.7[5.8] job-phone-number (uri)

The OPTIONAL “job-phone-number” Job Template attribute contains the contact telephone number for the job. If supported, the Printer MUST accept the ‘tel:’ URI scheme [RFC2806] and MAY accept other schemes, such as the ‘fax:’ scheme [RFC2806]. Any processing by the Printer of the “job-phone-number” attribute is implementation-dependent.

8.8 job-print-password (octetString(256))

The "job-print-password" Job Template attribute specifies the Job's "print password", which is used to control the Job's move from the 'pending-held' state to the 'pending' state, thus inhibiting its ability to be processed. It is used as an alternative to the "job-password" Operation attribute. Unlike the "job-password" attribute, this attribute becomes one of the Job's Job Status attributes.

As with the "job-password" Operation attribute, the User enters a password in the job submitting application. The value is encrypted by the Client using one of the methods specified by the "job-print-password-encryption-supported" attribute. The encrypted password is sent to the Printer as the value of the "job-print-password" attribute.

If a "job-password" value is provided, other than a zero-length string, the printer MUST hold the job in the 'pending-held' state, and the 'job-password-wait' value is added to the "job-state-reason" attribute.

The user enters the same password at the device to release the job for printing. The Printer uses the same encryption method specified in the "job-password-encryption" attribute on this password. The printer MUST resume the print job when the locally-supplied encrypted password matches the value of the "job-password" attribute. The method in which the password is entered and validated at the Printer is implementation dependent.

The "job-print-password" attribute value MUST NOT be returned in a Get-Job-Attributes response.

Other Jobs may be printed before the release of the Secure Print Job from the 'pending-held' state. If the Secure Print Job is released by the user while another job is printing, the Secure Job MUST NOT resume printing until the current job is done printing. The Secure Job SHOULD be the next job printed after the current job, unless there is another job in the Printer which has a higher priority than the Secure Job as determined by the "job-priority" attribute.

Page 63 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

181182

1793

17941795179617971798

1799

18001801180218031804

1805180618071808

180918101811

181218131814181518161817

18181819

182018211822182318241825

183

Page 64: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

8.9 job-print-password-encryption (type2 keyword)

The "job-print-password-encryption" member attribute specifies the encryption algorithm used to encrypt the value held by the "job-storage-password" member attribute. The value of this attribute MUST be one of the values specified by the Printer's "job-storage-password-encryption-supported" Printer Description attribute (section 12.25).

8.10 job-recipient-name (name(MAX))

The OPTIONAL “job-recipient-name” Job Template attribute contains the name of the person that is to receive the output of the job. The value of the "job-recipient-name" attribute is commonly printed on job sheets printed with the job. An example of another use of the "job-recipient-name" attribute is if the printer accesses a database to get job delivery instructions for the recipient of a job. A zero-length value indicates that there is no job recipient name.

If the Client omits this attribute in a create request, the printer MAY use the “job-recipient-name-default” attribute value, unless it has not been configured by the administrator, or MAY use the “authenticated user” name (see [MOD1.1] section 8.3), depending on implementation.

8.11 job-retain-until (type2 keyword | name(MAX))

The OPTIONAL "job-retain-until" Job Template Attribute specifies the duration of time that the Printer retains the Job once it has entered the 'completed' state [STD92]. If the specified time period has not yet arrived, the Printer MUST set the Job's "job-state-reasons" value to 'job-retain-until-specified'. However, the Printer MAY perform processing before the time period arrives, but the Printer MUST NOT produce any output until the time period arrives. When the time period arrives, the Job MUST become a candidate for output (including any processing required to produce the output).

Standard keyword values for named time periods are:

Keyword Description

'no-delay-output' There are no reasons to delay output

'indefinite' The Job output is delayed indefinitely until a Client performs a Set-Job-Attributes operation [RFC3380] with either of the delay output Operation attributes: "job-delay-output-until" or "job-delay-output-until-time"

'day-time' During the day

'evening' During the evening

Page 64 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

184185

1826

1827182818291830

1831

183218331834183518361837

1838183918401841

1842

1843184418451846184718481849

1850

186

Kennedy, Smith (Wireless & Standards Architect), 02/11/19,
Under what conditions does "name(MAX) need to be an alternative syntax when we want to support both registered keywords and vendor-unique extensions?
Page 65: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'night' During the night

'weekend' During the weekend

'second-shift' During the second shift (after close of business)

'third-shift' During the third shift (after midnight)

Even though a job supplied with the "job-delay-output-until" Job Template attribute may be in the 'processing-stopped' state, the Client MUST NOT supply and the Printer MUST NOT support the Resume-Job ([RFC3998]) to move the job out of the 'processing-stopped' state. The only way for a Client to alter the delay period for a job and for the Printer to support altering the delay period for a job is by supporting the Set-Job-Attributes operation ([RFC3380]). See section 8.2 below.

The Client MUST NOT supply both the "job-delay-output-until" and "job-delay-output-until-time" (see section 7.5 below) Job Template attributes in a Job Creation request. If the Client supplies such a malformed request by supplying both, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code (see [STD92]). Note: it is not an error for a Client to supply and a Printer to support a "job-hold-xxx" and a "job-delay-output-xxx" in the same Job Creation operation, since they control separate aspects of job processing.

8.12 job-retain-until-time (dateTime)

The OPTIONAL "job-retain-until-time" Job Template Attribute specifies the time at which the Printer should cease retaining the Job once it has entered the 'completed' state [STD92]. A Client MUST NOT specify both this attribute and the "job-retain-until " attribute. If the Client supplies such a malformed request by supplying both, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code [STD92].

8.13 job-save-disposition (collection)

The OPTIONAL DEPRECATED “job-save-disposition” Job Template attribute is used to archive/save the Document Data of a job, such that the job can be re-printed on demand at some undefined time in the future. See also section 4.3 of this specification for a detailed description of the Job Save and Reprint Feature. If the Printer supports the “job-save-disposition” attribute for Saving Jobs, then it MUST also support the “proof-print” attribute for proofing Jobs. However, if the Printer supports the “proof-print” attribute, it NEED NOT support the “job-save-disposition” attribute.

If a Printer object is able to save a Job in a particular document format, the Printer MUST be able to process that document format for reprint using the Reprocess-Job and Resubmit-Job operations. See section 12.4 Conformance Requirements for the

Page 65 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

187188

185118521853185418551856

1857185818591860186118621863

1864

18651866186718681869

1870

1871187218731874187518761877

187818791880

189

Page 66: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

OPTIONAL "job-save-disposition" Job Template attribute for additional conformance requirements for Clients and Printers.

Interaction with "job-hold-until" and "job-hold-until-time": The "job-hold-until" attribute causes the job to be moved to the ‘pending-held’ state, which prevents processing of the job. The "job-save-disposition" attribute on the other hand does not become relevant until the job is moved to the ‘processing’ state. These two attributes can be used together in the same Job Creation operation with no adverse interactions.

The member attributes of the "job-save-disposition" attribute are:

Table 9 - "job-save-disposition" member attributes

Member Attribute Name Request Printer Support

save-disposition MUST MUST

save-info MAY MUST

8.13.1 save-disposition (type2 keyword)

The "save-disposition" member attribute specifies whether or not the job MUST be printed and/or saved. When a job moves into the ‘processing’ state, the value of the member attribute "save-disposition" is checked to determine what is to happen during the ‘processing’ state.

The "save-disposition" member attribute specifies processing steps that either MUST occur or that are prohibited. However, other processing steps MAY occur during the ‘processing’ state, provided they are not prohibited by the value of the "save-disposition" member attribute.

When a Saved Job is reprinted using any of the operations that reprint a Retained Job (e.g., Reprocess-Job or Resubmit-Job), the Printer MUST NOT copy the “job-save-disposition” attribute from the Saved Job to the copy of the Saved Job so that the job is not re-saved again. Note: the copy of the Saved Job will be saved again, if the Resubmit-Job operation supplies its own “save-job-disposition” attribute.

Standard keyword values are:

Keyword Description

'none' The Printer MUST print the job. The Printer MUST NOT save any portion of the job except for processing purposes. The Printer MUST NOT apply the "job-save-disposition-default" attribute.

If the print was successful, the Printer MUST add the ‘job-

Page 66 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

19019118811882

18831884188518861887

1888

1889

1890

1891189218931894

1895189618971898

18991900190119021903

1904

192

Page 67: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

completed-successfully’ value to the job’s “job-state-reasons” attribute.

If the printing had (1) warnings or (2) errors (possibly with warnings), the Printer MUST add the ‘job-completed-with-warnings’ or ‘job-completed-with-errors’ value, respectively, to the job’s “job-state-reasons” attribute.

'save-only' The following constraints apply to the ‘processing’ of the job:

The job MUST NOT be printed.

The Document Data MUST be saved to the location specified by the "save-location" member attribute.

The Printer’s job scheduling algorithm MAY depend on whether or not the job is ‘save-only’. However, the Printer MUST save the job while the job is in the ‘processing’ state (the job’s “job-state” attribute is set to ‘processing’). Thus, the Printer MUST move the job (typically from the ‘pending’ state) to ‘processing’ state and add the ‘job-saving’ value (see description of new "job-state-reasons" later in section 11.3) to the job’s “job-state-reasons” attribute.

When the Printer completes saving the job, the Printer MUST move the job to the ‘completed’ state by setting the job’s “job-state” attribute to the ‘completed’ value and removing the ‘job-saving’ value (see description of new "job-state-reasons" later in section 11.3) from the job’s “job-state-reasons” attribute.

If the save was not successful, the Printer MUST add the 'job-saved-with-warnings' or ‘job-saved-with-errors’ value to the job’s “job-state-reasons” attribute (see description of new "job-state-reasons" later in section 11.3). If the Printer encounters an error during saving, such that a reprint of that job using the Reprocess-Job (see section 4.3.1.1) or Resubmit-Job (see section 4.3.1.2) operations will not produce complete results, the Printer MUST reject the Reprocess-Job or Resubmit-Job with the error 'client-error-not-possible'.

'print-save' The following constraints apply to the ‘processing’ of the job:

The job MUST be printed.

The Document Data MUST be saved to the location specified by the "save-location" member attribute.

Page 67 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

193194

195

Page 68: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

The order of the processing steps required for the ‘print-save’ disposition is implementation dependent. However, the Printer MUST save the job during the same period that it prints the job, namely, while the job is in the ‘processing’ state (the job’s “job-state” attribute is set to ‘processing’). Thus, the Printer MUST move the job (typically from the ‘pending’ state) to ‘processing’ state and add the ‘job-printing’ and ‘job-saving’ value (see description of new "job-state-reasons" later in section 11.3) to the job’s “job-state-reasons” attribute at the appropriate times.

When the Printer completes saving the job, then the Printer MUST move the job to the ‘completed’ state by setting the job’s “job-state” attribute to the ‘completed’ value and removing the ‘job-printing’ and ‘job-saving’ (see description of new "job-state-reasons" later in section 11.3) values from the job’s “job-state-reasons” attribute.

If both the save and the print were successful, the Printer MUST add the ‘job-completed-successfully’ value to the job’s “job-state-reasons” attribute.

If the printing had (1) warnings or (2) errors (possibly with warnings), the Printer MUST add the ‘job-completed-with-warnings’ or ‘job-completed-with-errors’ value, respectively.

As with the ‘save-only’ value, if the save was not successful, the Printer MUST add the 'job-saved-with-warnings' or ‘job-saved-with-errors’ value to the job’s “job-state-reasons” attribute (see description of new "job-state-reasons" later in section 11.3).

8.13.2 save-info (1setOf collection)

The "save-info" member attribute is a collection that contains the attributes that tell the printer how to save the job. This includes the format in which the Document Data MUST be saved, and the location to which these are saved. Multiple save locations or document formats MAY be saved by specifying multiple collections within this attribute.

If the Client supplies the “job-save-disposition” Job Template attribute but omits the “save-info” member attribute, the Printer supplies a single collection value for the “save-info” member attribute from the values of its “save-location-default” attribute, the job’s “job-name”, and its “save-document-format-default” attribute (see descriptions immediately below).

Page 68 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

196197

1905

1906190719081909

19101911191219131914

198

Page 69: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

A Client MUST supply in a request a number of collections not to exceed the maximum number supported specified in the "max-save-info-supported" Printer Description attribute (see "max-save-info-supported" description in section 10.6). As with any Job Template attribute, if the Client does supply more values than the Printer supports and the values of the “ipp-attribute-fidelity” is ‘false’ (or omitted), the Printer MUST accept the job, return the ‘successful-ok-ignored-or-substituted-attributes’ status code, return the ignored values in the Ignored Attributes group, use the first n values, and ignore the remaining values. If the Client does supply more values than the Printer supports and the values of the “ipp-attribute-fidelity” is ‘true’, the Printer MUST reject the request and return the ‘client-error-request-entity-too-large’ status code.

The "save-info" collection member attributes are:

Table 10 - "save-info" member attributes

Member Attribute Name Request Printer Support

save-location MUST MUST

save-name MAY MAYsave-document-format MAY MUST

8.13.2.1 save-location (uri)

The "save-location" member attribute specifies the path to the directory as a URI where the Printer MUST save the Document Data and other information.

The "save-location" and (“save-location-default” and “save-location-supported”) attribute value MUST be an Absolute URI [RFC2396]. Absolute URIs are specified with a URI scheme, an optional authority component, and an absolute path (e.g., ‘ftp://printhost.printco.com/var/spool/jobdir/’ or ‘file:///job-repository/jobdir/’).

Note: As any other member attribute of a Job Template attribute, the Printer validates the “save-location” member attribute as follows: If the Client supplies the “save-location” member attribute, the value MUST match one of the values of the Printer’s “save-location-supported” (1setOf uri) attribute. If the value does not match, the Printer’s action depends on the value of the job’s “ipp-attribute-fidelity” (boolean) attribute: If “ipp-attribute-fidelity” is ‘false’ or omitted, the Printer MUST accept the job, return the ‘successful-ok-ignored-or-substituted-attributes’ status code, return the ignored attributes in the Unsupported Attributes Group, and perform one of the following actions DEPENDING ON IMPLEMENTATION: (1) ignore the attribute and not save the job, (2) put the job in the ‘held’ state and let the operator fix the problem, either by changing the job’s “save-location” attribute value or adding the value to the Printer’s “save-location-supported” attribute, or (3) substitute the job’s “save-location” value with one of the values of the Printer’s “save-location-supported” values. If “ipp-attribute-fidelity” is ‘true’, the Printer MUST

Page 69 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

1992001915191619171918191919201921192219231924

1925

1926

1927

19281929

1930193119321933

19341935193619371938193919401941194219431944194519461947

201

Page 70: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

reject the request, return the ‘client-error-attributes-or-values-not-supported’ status code, along with the “job-save-disposition” attribute in the Unsupported Attributes Group.

To specify that the saved job is to reside in a sub-directory (whether it exists or not) of one of the directories specified by the “save-location-supported” Printer attribute, the Client supplies that sub-directory name as part of the “save-name” attribute (see "save-name" description below), not as part of the “save-location” member attribute.

Note: As with any other ‘name’, ‘integer’, ‘uri’, or ‘collection’ Job Template or Job Template member attribute, the administrator can suspend validation by configuring the Printer’s “user-defined-values-supported” attribute with the ‘save-location’ keyword (see “user-defined-values-supported” description in [PWG5100.3]), so that the user can specify an arbitrary path and the Printer will accept the job. If the Printer cannot process the job using the specified value for "save-location", then the Printer MUST hold the job so that an operator can attempt to create the necessary sub-directories to populate the path, if they don’t already exist, or change the job’s “save-location” attribute value. See Table 10 below entitled "Printer actions for various Job and Printer attribute values", at the end of the "job-save-disposition" description.

If the Client supplies the “save-info” member attribute but omits the “save-location” member attribute, the Printer supplies the “save-location” member attribute value from its “save-location-default” attribute (see “save-location-default” description below).

Defined Job Save URI Schemes for use in the “save-location” member attribute include:

Table 11 - URI Schemes for "save-location" member attribute

URI Scheme Description Printer Support

ftp Use IETF FTP protocol [RFC959], [RFC2228], [RFC2640] MUST

file Use the Printer’s configured file system. Since the ‘file:’ URI scheme cannot be separated from the Printer object’s native file system, the semantic of the ‘file:’ URI scheme is IMPLEMENTATION DEPENDENT. Also the ‘file:’ URI scheme on some Printer objects MAY be limited to the local file system, while on other Printer objects it MAY be configured to use a network file system.

The Printer implementation MAY allow the system administrator to configure where the ‘file:’ scheme is based in the file system. However, the base for the ‘file:’ scheme MUST be the same as for all other uses of the ‘file’: scheme, such as the value of the “document-uri” operation attribute in a Printer-URI operation (for print by reference of a saved document - see [STD92] section 4.2.2 Print-URI

MAY

Page 70 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

202203194819491950

1951195219531954

19551956195719581959196019611962196319641965

196619671968

1969

1970

204

Page 71: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

operation).

http Use HTTP protocol with the Put operation to save the job. MUST

It is RECOMMENDED that for each URI scheme supported for saving Jobs, that all of these values have the first token in the file path be ‘job-repository’. Then an administrator that has to manage the saved Jobs for several Printers will have a consistent naming schemes for locating all the saved Jobs by whatever means used to access the saved Jobs. For example, for the ‘file:’ scheme, all of the values SHOULD start out with: file:///job-repository/ and for the ‘ftp:’ scheme, all of the values SHOULD start out with: ftp://xxx/job-repository/. (Note: in URIs, the final "/" is redundant, and the Printer MUST behave the same whether or not the final “/” is present).

8.13.2.2 save-name (name(MAX))

The “save-name” member attribute specifies the name of the saved job in the directory specified by the “save-location” member attribute. The Client can supply a “save-name” attribute value that is either a simple file name or a relative path where each component of the path is separated by a FORWARD SLASH (“/”) character. The “save-name-subdirectory-supported” Printer Description attribute indicates whether or not the Printer supports a FORWARD-SLASH (“/”) in the “save-name” value. Whether the FORWARD SLASH when supported is actually implemented as a sub-directory is IMPLEMENTATION DEPENDENT.

There is no requirement that the "save-name" attribute value in combination with the "save-location" attribute value specify an identification that is unique. Thus, if the "save-name" attribute value in combination with the "save-location" attribute value specifies a handle that already exists, the Printer MUST accept the job and save the job with the duplicate “save-name” value. This requirement is because a Saved Job is referenced for re-printing using the “job-id” attribute value assigned by the Printer that is unique at least with respect to that Printer.

If the “save-name” member attribute is not specified by the Client in the “job-save-disposition” Job Template attribute, the Printer object MUST generate a “save-name” attribute value for the job using the job’s “job-name” attribute value. Note: Printers MUST generate a “job-name” value, when the Client does not supply a “job-name” operation attribute (see [STD92] section 5.3.5 “job-name”, so there is always a “job-name” value.

8.13.2.3 save-document-format (mimeMediaType)

The "save-document-format" member attribute indicates the document format in which the job content (Document Data) MUST be saved. If the "job-save-disposition" attribute is supported, the printer object MUST support the "save-document-format" member attribute.

Page 71 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

205206

19711972197319741975197619771978

1979

19801981198219831984198519861987

1988198919901991199219931994

19951996199719981999

2000

200120022003

207

Page 72: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

If the Client supplies the “save-info” member attribute but omits the “save-document-format” member attribute, the Printer MUST use the value of its “save-document-format-default” attribute (see above "save-info" description).

Although there can be a many-to-one relationship of documents to a job, all documents in a job specified with a disposition of 'save' or 'print-save' MUST be saved in the same format as specified by the "save-document-format" attribute value. A job MAY be saved to multiple formats by specifying multiple collection values for the "save-info" member attribute.

The “job-save-disposition” member attribute (and the “save-document-format” member attribute) is NOT defined to be used with the “page-overrides” attribute (see [PWG5100.6]). Thus, all documents MUST be saved in the same document format in each saved job.

The ‘mimeMediaType’ values defined for the “save-document-format” attribute are listed in the Table below. All values MUST include saving PDL data. A Printer MUST support at least one value. However, at this time, this specification does NOT REQUIRE a Printer to support any particular formats for saving Jobs.

If the saved job is submitted to a different make-and-model printer that supports the same document-format (i.e., the same value of the “document-format” operation attribute in the Document Creation request), then the Printer MUST be able to print the job, but the output cannot be guaranteed to appear exactly the same as the original output.

MIME Media Type Description

Any PDL document format

If any PDL document-format value is supplied from the Printer’s “document-format-supported” attribute, such as ‘application/postscript’, then the Printer MUST save the PDL data in that document format.

Printer implementations are free to store the saved data in any form they want for convenient, fast, and/or compact re-printing using Reprocess-Job or Resubmit-Job, and NEED NOT be identified by a distinct mimeMediaType value in the “save-document-format-supported” Printer attribute.

The ‘application/octet-stream’ value MUST NOT be supplied for this attribute since it doesn’t make any sense for saving Jobs.

The referenced specifications that define the saved format MUST meet the conformance requirements listed in section 12.4.2.1.

Page 72 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

208209200420052006

20072008200920102011

201220132014

2015201620172018

2019202020212022

20232024

210

Page 73: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

8.13.2.4 Printer actions for various combinations of attributes

This section lists the Printer actions for various combinations of "save-location" (uri), "save-name" (name(MAX)), "save-location-supported" (1setOf uri), existing saved Jobs, ipp-attribute-fidelity (boolean), "user-defined-values-supported" (1setOf keyword) and Printer actions.

The possible Printer actions are (see above descriptions of "save-location" and "save-name" for details):

1. reject: The Printer rejects the Job Creation request, returns the ‘client-error-attributes-or-values-not-supported’ status code and the “job-save-disposition” attribute and value in the Unsupported Attributes group.

2. accept-save: The Printer accepts the Job Creation request, returns the ‘successful-ok’ status code, and attempts to create all necessary files and sub-directories.

3. accept-substitute: The Printer accepts the Job Creation request, returns the ‘successful-ok-ignored-or-substituted-attributes’ status code and the “job-save-disposition” attribute and value in the Unsupported Attributes group, and, DEPENDING ON IMPLEMENTATION: (1) ignores the attribute and does not perform the save, (2) puts the job in the ‘held’ state and let the operator fix the problem, either by changing the job’s “save-location” attribute value or adding the value to the Printer’s “save-location-supported” attribute, or (3) substitutes the job’s “save-location” value with one of the values of the Printer’s “save-location-supported” values.

4. accept-hold: The Printer accepts the Job Creation request, returns the ‘successful-ok’ status code, and holds the job for the operator to resolve the conflict so that the job can be saved.

Table 10 shows the Printer actions for the various possible value combinations of the other Job and Printer attributes. In the example, there is already one saved job: ‘a/bar’. The Printer supports three save-location directories: a, b, c.

Table 12 - Printer actions for various Job and Printer attribute values

MIME Media Type

save-name

save-location-supported

existing saved Jobs

ipp-attribute-fidelity

user-defined-values-supported

Printer action

a foo a,b,c a/bar T | F none accept-save

a d/foo a,b,c a/bar T | F none accept-save

a bar a,b,c a/bar T | F none accept-hold

Page 73 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2112122025

2026202720282029

20302031

203220332034

20352036

203720382039204020412042204320442045

204620472048

204920502051

2052

213

Page 74: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

d foo a,b,c a/bar F none accept-substitute

d foo a,b,c a/bar T none reject

a foo a,b,c a/bar T | F save-location accept-save

a d/foo a,b,c a/bar T | F save-location accept-save

a bar a,b,c a/bar T | F save-location accept-hold

d foo a,b,c a/bar F save-location accept-hold

d foo a,b,c a/bar T save-location accept-hold

a/d foo a,b,c a/bar F save-location accept-hold

a/d foo a,b,c a/bar T save-location accept-hold

8.14 job-storage (collection)

The "job-storage" Job Template attribute is a collection whose members specify how a Job should be handled by the Printer when it has reached the 'completed' state and become a Stored Job. See section 4.5 for a full description of the Job Storage Feature.

8.14.1 job-storage-access (type2 keyword)

The "job-storage-access" member attribute specifies the access restrictions on the Stored Job. The value MUST be one of the keywords specified by the Printer's "job-storage-access-supported" Printer Description attribute (section Error: Reference source notfound). The "job-storage-access" member attribute MUST be preserved by the Job as a member of the "job-storage" Job Status attribute (section 11.1).

8.14.2 job-storage-disposition (type2 keyword)

The "job-storage-disposition" member attribute specifies how the Job is to be handled by the Printer during the ‘processing’ state. The value MUST be one of the values specified by the Printer's "job-storage-disposition-supported" Printer Description attribute (section 12.36).

The "job-storage-disposition" member attribute MUST NOT be preserved by the Job as a member of the "job-storage" Job Status attribute (section 11.1).

Page 74 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

214215

2053

205420552056

2057

20582059206020612062

2063

2064206520662067

20682069

216

Smith Kennedy, 08/27/18,
I don't understand why there are discrete lines here when the only difference between the pairs is "T" / "F" - why not combine them with a "T | F" as above?
Page 75: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

8.14.3 job-storage-group (name(MAX))

This member attribute specifies the group in which the Stored Job is listed. The value of this attribute MUST be one of the values specified by the Printer's "job-storage-group-supported" Printer Description attribute (section 12.37).

8.15 pdl-init-file (1setOf collection)

The OPTIONAL "pdl-init-file" Job Template attribute controls initialization of the Printer’s Page Description Language (PDL) interpreter. This attribute specifies the files that the Printer uses to initialize the PDL interpreter before it starts interpreting each Input Document (i.e. file) in a Job with one exception. When the value of "multiple-document-handling" is 'single-document' or ‘single-document-new-sheet’, a PDL interpreter processes all of the Input-Documents of a Job as if the Input Documents were a single file. In this case, the PDL interpreter is initialized just before processing the first Input Document only.

Some PDLs (i.e. PostScript and HP PCL) have the ability to define reusable macros, code fragments, fonts, and other resources. These components may reside either within the body of the document file to be printed or within files that can be sent to the Printer’s PDL interpreter separately. Having the ability to send these “pre-initialization” (prep) files separately from the main body of the job to be printed, enables an application to “pre-condition” the PDL interpreter with these definitions ahead of time. This in turn makes it possible to reduce the size of a given document data file to be printed and to reuse the components on other Jobs.

The exact mechanism by which an initialization file (or list of initialization files) is installed on the Printer is implementation dependent and outside of the current scope of IPP.

Upon receipt of the "pdl-init-file" collection attribute(s) the Printer will send the initialization file (or list of files) referenced to the Printer’s PDL interpreter for processing BEFORE starting to process the document(s) attached to the job (in the Print-Job request) or referenced by the job (in the Print-URI request).

If the Printer receives more than one "pdl-init-file" collection in a given print request, then the list of initialization files will be sent to the Printer’s PDL interpreter in the order that they are encountered in the Job Template attributes.

Table 11 lists the member attributes of the "pdl-init-file" Job Template attribute and specifies whether Clients MUST supply them in collection values and whether Printers MUST support them if supporting this collection attribute. The following sub-sections define these member attributes.

Page 75 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2172182070

207120722073

2074

20752076207720782079208020812082

20832084208520862087208820892090

20912092

2093209420952096

209720982099

2100210121022103

219

Page 76: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Table 13 - "pdl-init-file" member attributes

Member Attribute Name Request Printer Support

pdl-init-file-location MAY MUST

pdl-init-file-name MUST MUSTpdl-init-file-entry MAY MAY

8.15.1 pdl-init-file-location (uri)

This member attribute must be an Absolute URI [RFC 2396] that specifies the path to the directory where the initialization file to be sent to the Printer’s PDL interpreter will be found. According to RFC 2396, an Absolute URI MUST have a URI scheme, MAY have an authority (host name) component, and MUST have an absolute path (e.g., ‘ftp://printhost.printco.com/var/spool/jobinitfiledir/initfile1’ or ‘file:///jobinitfiledir/initfile1’).

8.15.2 pdl-init-file-name (name(MAX))

This member attribute specifies the name of the initialization file within the directory specified by the "pdl-init-file-location" member attribute that the Printer MUST send to its PDL interpreter prior to processing the document.

The “pdl-init-file-subdirectory-supported” Printer Description attribute indicates whether or not the Printer supports a FORWARD-SLASH (“/”) in the “pdl-init-file-name” value. Whether the FORWARD SLASH when supported is actually implemented as a sub-directory is IMPLEMENTATION DEPENDENT.

A well-formed request MUST include at least the name of the initialization file to be used (i.e. the "pdl-init-file-location" or directory containing the initialization file need not be supplied by the Client and in fact, might not be known to the Client). The Client can supply a "pdl-init-file-name" attribute value that is either a simple file name or a relative path where each component of the path is separated by a FORWARD SLASH (“/”) character. The "pdl-init-file-name" member attribute value concatenated with the “pdl-init-file-location” attribute value (supplying a “/” between them, if necessary) specifies the initialization file to be used. For example, if “pdl-init-file-location” is ‘a/b’ or ‘a/b/’ and "pdl-init-file-name" is ‘c/d’, the resulting file path is: ‘a/b/c/d’.

8.15.3 pdl-init-file-entry (name(MAX))

This member attribute is an optional member of the collection that if present specifies an entry point within the init file that the PDL interpreter starts at.

Page 76 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2202212104

2105

21062107210821092110

2111

211221132114

2115211621172118

211921202121212221232124212521262127

2128

21292130

222

Page 77: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

8.16 proof-print (collection) REQUIRED Job Template attribute

The REQUIRED "proof-print" Job Template attribute allows a user to specify the attributes of the proof print(s) of the job that are to be printed prior to the printing the full run of the job. After the proof prints have been produced, the Printer MUST retain the completed job as a Proof Print Job for a period of time sufficient to allow users to proof the job, rather than aging it out after an implementation-defined period which SHOULD be longer than the period for ordinary completed Jobs (see Job Retention phase in [STD92] section 5.3.7.2 Partitioning of Job States). When a Proof Print Job is reprinted using any of the operations that reprint a Retained Job (e.g., Reprocess-Job or Resubmit-Job), the Printer MUST NOT copy the “proof-print” attribute from the Proof Print Job to the copy of the Proof Print Job so that the job is not re-proofed again. Only if the Resubmit-Job operation supplies its own “proof-print” attribute, will the copied job be proofed.

A Client MUST be able to supply and a Printer MUST support this attribute in order to claim support of this IPP Job and Printer Extensions – Set 2 v2.0 Specification, respectively. See section 12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template attribute for additional conformance requirements for Clients and Printers.

Table 12 lists the member attributes of the "job-sheets-col" collection attribute:

Table 14 - "proof-print" member attributes

Member Attribute Name Request Printer Support

proof-print-copies MUST MUST

mediaMUST be one or the other, but NOT both

MUSTmedia-col MAY

8.16.1 proof-print-copies (integer (0:MAX))

The "proof-print-copies" member attribute specifies the number of copies the Printer MUST produce in the proof job. The proof print(s) are produced using the Job Template attributes specified with the Job, except any overridden by member attributes in this collection.

If the "proof-print-copies" value is 0, then no proof prints are produced.

After the requested number of proof prints have been successfully produced by the Printer, then the Printer transitions the job to the ‘completed’ state and retains the job for a period of time that is long enough for the users to proof the output of the Proof Print Job, rather than aging the job out.

Page 77 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

223224

2131

21322133213421352136213721382139214021412142

21432144214521462147

2148

2149

2150

215121522153

2154

2155215621572158

225

Page 78: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

8.16.2 media (type2 keyword | name(MAX)) or media-col (collection)

Either the "media" (see [STD92]) or the "media-col" member attribute is used to indicate the media that the Printer MUST use for the specified "proof-print-copies" of the Proof Job. The member attributes are the same as those for the "media-col" attribute defined in [PWG5100.3] and in section 11.5 of this specification.

The Client MUST supply either the "media" or the "media-col" member attribute, but NOT both. If the Client supplies such a malformed request by supplying neither or both, the Printer MUST (depending on implementation) either (1) reject the request and return the 'client-error-bad-request' status code (see [STD92]) or (2) use either the "media" or the "media-col" member attribute, independent of the value of the "ipp-attribute-fidelity" attribute supplied by the Client.

Since this "media" member attribute has the same name as the "media" Job Template attribute (defined [STD92]), the "media-supported" (1setOf (type2 keyword | name(MAX))) Printer attribute identifies the values of this "media" member attribute (as well as the values of the "media" Job Template attribute) that the Printer supports, i.e., the names of the supported media. A value that is provided for the "media" member attribute in the collection would have the same effect as if the job were submitted with that value as the value of the "media" Job Template attribute.

Since this "media-col" member attribute has the same name as the "media-col" Job Template attribute (defined in [PWG5100.3] and in section 11.5 of this specification), the "media-col-supported" Printer attribute identifies the keyword names of the member attributes supported in this "media-col" member attribute (as well as the keyword names of the "media-col" Job Template attribute), i.e., the names of the member attributes that the Printer supports.

Job Storage

9.[6.] Additional Semantics for Existing OperationsThis section adds additional semantics to the following existing operations that are defined in other documents:

1. Hold-Job operation ([STD92] section 4.3.5)

2. Set-Job-Attributes operation ([RFC3380] 4.2)

Page 78 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2262272159

2160216121622163

216421652166216721682169

2170217121722173217421752176

217721782179218021812182

2183

2184

2185

21862187

2188

2189

228

Page 79: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

9.1 Additional attribute for use with the Hold-Job operation

The following Job Template attribute MAY also be supported as Group 1 Operation attributes in the OPTIONAL Hold-Job operation (along with the "job-hold-until" (type2 keyword | name(MAX)) as defined in [STD92] sections 4.3.5 and 4.3.5.1):

1. "job-hold-until-time" (dateTime) - see section 7.6

If the Client does not supply either the "job-hold-until" or the "job-hold-until-time" Operation attributes in the request, the IPP object MUST populate the job object with a "job-hold-until" attribute with the 'indefinite' value (if IPP object supports the "job-hold-until" attribute) and hold the job indefinitely, until a Client performs a Release-Job ([STD92] section 4.3.6) or Set-Job-Attributes (see section 8.2 below) operation.

9.1.1 job-hold-until-time (dateTime) operation attribute in a Hold Job operation

If supplied and supported as specified in the Printer's "job-hold-until-time-supported" attribute, the IPP object MUST copy the supplied operation attribute to the Job object, replacing the job's previous "job-hold-until" or "job-hold-until-time" attribute, if present, MUST add the 'job-hold-until-specified' value to the job's "job-state-reasons" attribute, and MUST make the job a candidate for scheduling after the specified dateTime.

If the Client (1) supplies a value that specifies a date-time that has already occurred and (2) the IPP object supports the "job-hold-until-time" operation attribute, the IPP object MUST accept the request, MUST remove the 'job-hold-until-specified' value from the job's "job-state-reasons" attribute, if present. If there are no other reasons to hold the job, the IPP object MUST make the job be a candidate for processing immediately (see [STD92] section 5.2.2).

If supplied, but either the "job-hold-until-time" Operation attribute itself or the value supplied is not supported, i.e., is out of range, the IPP object MUST accept the request, MUST add the "job-hold-until" = 'indefinite' attribute, MUST add the 'job-hold-until-specified' value to the job's "job-state-reasons" attribute, MUST return the unsupported attribute or value in the Unsupported Attributes Group according to [STD92] section 4.1.2, MUST return the 'successful-ok-ignored-or-substituted-attributes, and MUST hold the job indefinitely until a Client performs a subsequent Release-Job operation.

9.2 Additional attributes for use with the Set-Job-Attributes operation

The following Job Template attributes MAY be settable using the Set-Job-Attributes operation ([RFC3380] section 4.2), in which case they MUST be so indicated as values returned by the Printer's "job-settable-attributes-supported" attribute ([RFC3380] section 6.2):

1. "job-delay-output-until" (type2 keyword | name(MAX)) - see section 7.4

Page 79 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

229230

2190

219121922193

2194

21952196219721982199

2200

22012202220322042205

220622072208220922102211

2212221322142215221622172218

2219

2220222122222223

2224

231

Page 80: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

2. "job-delay-output-until-time" (dateTime) - see section 7.5.

3. "job-hold-until" (type2 keyword | name(MAX)) - see [STD92] section 5.2.2.

4. "job-hold-until-time" (dateTime) - see section 7.6

9.2.1 job-delay-output-until (type2 keyword | name(MAX)) and job-delay-output-until-time" (dateTime) operation attributes in a Set-Job operation

If either the "job-delay-output-until" or the "job-delay-output-until-time" operation attribute is supplied in the Set-Job-Attributes operation and supported as specified in the Printer's "job-settable-attributes-supported" attribute ([RFC3380] section 6.2), the IPP object MUST copy the supplied operation attribute to the Job object, replacing the job's previous "job-delay-output-until" or "job-delay-output-until-time" attribute, if present, MUST add the 'job-delay-output-until-specified' value to the job's "job-state-reasons" attribute, and MUST make the job a candidate for scheduling after the specified date-time.

The "job-delay-output-until" and "job-delay-output-until-time" attributes are mutually exclusive. If one is set on the job and the other is supplied in a Set-Job-Attributes operation, the one supplied replaces the other on the job. Furthermore, as with Job Creation operations, a Client MUST NOT supply both a "job-delay-output-until" and a "job-delay-output-until-time" attribute in the same Set-Job-Attributes request. If a Client does supply such a malformed request, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code [STD92].

If the Client (1) supplies a value that specifies a period or date-time that has already occurred and (2) the IPP object supports the "job-delay-output-until" or "job-delay-output-until-time" operation attribute, respecively, the IPP object MUST accept the request, MUST remove the 'job-delay-output-until-specified' value from the job's "job-state-reasons" attribute, if present. If there are no other reasons to hold the job, the IPP object MUST make the job be a candidate for processing immediately (see [STD92] section 5.2.2).

If supplied, but either the "job-delay-output-until" or the "job-delay-output-until-time" operation attribute itself or the value supplied is not supported, i.e., is out of range, the IPP object MUST accept the request, MUST add the "job-delay-output-until" = 'indefinite' attribute, MUST add the 'job-delay-output-until-specified' value to the job's "job-state-reasons" attribute, MUST return the unsupported attribute or value in the Unsupported Attributes Group according to [STD92] section 4.1.2, MUST return the 'successful-ok-ignored-or-substituted-attributes’, and MUST hold the job indefinitely until a Client performs a subsequent Release-Job operation.

9.2.2 job-hold-until" (type2 keyword | name(MAX)) and job-hold-until-time (dateTime) operation attributes in a Set-Job-Attributes operation

If either the "job-hold-until" or the "job-hold-until-time" operation attribute is supplied in the Set-Job-Attributes operation and supported as specified in the Printer's "job-settable-

Page 80 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2322332225

2226

2227

22282229

2230223122322233223422352236

2237223822392240224122422243

224422452246224722482249

22502251225222532254225522562257

22582259

22602261

234

Page 81: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

attributes-supported" attribute ([RFC3380] section 6.2), the IPP object MUST copy the supplied operation attribute to the Job object, replacing the job's previous "job-hold-until" or "job-hold-until-time" attribute, if present, MUST add the 'job-hold-until-specified' value to the job's "job-state-reasons" attribute, and MUST make the job a candidate for scheduling after the specified date-time.

The "job-hold-until" and "job-hold-until-time" attributes are mutually exclusive. If one is set on the job and the other is supplied in a Set-Job-Attributes operation, the one supplied replaces the other on the job. Furthermore, as with Job Creation operations, a Client MUST NOT supply both a "job-hold-until" and a "job-hold-until-time" attribute in the same Set-Job-Attributes request. If a Client does supply such a malformed request, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code [STD92].

If the Client (1) supplies a value that specifies a period or date-time that has already occurred and (2) the IPP object supports the "job-hold-until" or "job-hold-until-time" operation attribute, respectively, the IPP object MUST accept the request, MUST remove the 'job-hold-until-specified' value from the job's "job-state-reasons" attribute, if present. If there are no other reasons to hold the job, the IPP object MUST make the job be a candidate for processing immediately (see [STD92] section 4.2.2).

If supplied, but either the "job-hold-until" or "job-hold-until-time" operation attribute itself or the value supplied is not supported, i.e., is out of range, the IPP object MUST accept the request, MUST add the "job-hold-until" = 'indefinite' attribute, MUST add the 'job-hold-until-specified' value to the job's "job-state-reasons" attribute, MUST return the unsupported attribute or value in the Unsupported Attributes Group according to [STD92] section 4.1.2, MUST return the 'successful-ok-ignored-or-substituted-attributes, and MUST hold the job indefinitely until a Client performs a subsequent Release-Job operation.

10. Job Description Attributes

10.1 job-save-printer-make-and-model (text(127))

This attribute identifies the make and model of the output device which saved this job. The values are the same as the corresponding "printer-make-and-model" Printer Description attribute (see "printer-make-and-model" description in [STD92]). If this attribute is present in the saved Job, then only Printers that have the same make and model will be able to print the saved job with identical appearance. Other make and models MAY be able to print the job, but not necessarily with identical appearance, provided that the Printer supports the “save-document-format” value of the saved job. If this attribute is not present in the saved Job instructions and the Job object after saving, then the saved Job was saved in a format that can be printed on any output device and will generate the same appearance provided that the Printer supports the “save-document-format” value of the saved job.

Page 81 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

23523622622263226422652266

2267226822692270227122722273

227422752276227722782279

2280228122822283228422852286

2287

2288

22892290229122922293229422952296229722982299

237

Page 82: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

If the Printer supports the "job-save-disposition" Job Template attribute (section 8.15), then the Printer MUST support the "printer-make-and-model" Printer Description attribute.

11. Job Status Attributes

11.1 job-storage (collection)

The "job-storage" Job Status attribute labels the Job as a Stored Job and specifies the storage handling requirements the Printer MUST follow. All the members of this Job Storage attribute are the same as those specified for the "job-storage" Job Template attribute (section 8.16).

12. Printer Description Attributes

12.1 feed-orientation-default (type2 keyword)

The "feed-orientation-default" Printer Description attribute specifies the default value of "feed-orientation" when not supplied in a request. This default depends upon the media-size being requested and is printer implementation dependent upon how the default value is calculated.

12.2 feed-orientation-supported (1setOf (type2 keyword))

The "feed-orientation-supported" Printer Description attribute specifies which values of "feed-orientation" that the Printer supports.

12.3 font-name-requested-default (name(MAX))

The "font-name-requested-default" Printer Description attribute specifies the default value of "font-name-requested" when not supplied in a request.

12.4 font-name-requested-supported (1setOf name(MAX))

The "font-name-requested-supported" Printer Description attribute specifies which values the Printer supports for the "font-name-requested" Job Template attribute.

12.5 font-size-requested-default (integer (1:MAX))

The "font-size-requested-default" Printer Description attribute specifies the default value of "font-size-requested" when not supplied in a request.

Page 82 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

23823923002301

2302

2303

2304230523062307

2308

2309

2310231123122313

2314

23152316

2317

23182319

2320

23212322

2323

23242325

240

Page 83: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.6 font-size-requested-supported (1setOf rangeOfInteger (1:MAX))

The "font-size-requested-supported" Printer Description attribute specifies which values or ranges of values the Printer supports for the "font-size-requested" Job Template attribute.

12.7 job-cancel-after-default (integer(1:MAX) | no-value)

This Printer Description attribute provides the default value of the "job-cancel-after" Job Template attribute (section 8.4).

12.8 job-cancel-after-supported (rangeOfInteger(1:MAX))

This Printer Description attribute provides the allowed range of values for the "job-cancel-after" Job Template attribute (section 8.4).

12.9 job-creation-attributes-supported (1setOf type2 keyword)

This OPTIONAL extension enables a Client to query the printer for the set of job attributes that can be set by the Client during a Create-Job, Print-Job, Validate-Job, or Print-URI operation.

This extension allows the Client to dynamically determine all the job attributes that it can specify at the time of job creation.

The list of attribute names in “job-creation-attributes-supported” MUST include:

All Job Template attributes that may be supplied by the Client at the job level

All operation attributes that are written to the job object as job description attributes (e.g., "job-name") at the job level

The list of attribute names in “job-creation-attributes-supported” MUST NOT include:

Collection member attribute names

Note: The Client can determine which member attributes of “xxx” collection attributes are supported by querying the “xxx-supported” Printer attribute (see [RFC3382]).

Operation attributes that are not job attributes

Note: The only mechanism previously available for a Client to query the Printer for supported attributes is to specify the ‘job-template’ group value on a Get-Printer-Attributes operation. This has been problematic because: 1) it returns the entire list of “xxx-default” and “xxx-supported” attributes and values which will be excessively burdensome for production printing systems with extensive functionality, and 2) it

Page 83 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

241242

2326

23272328

2329

23302331

2332

23332334

2335

233623372338

23392340

2341

2342

23432344

2345

2346

234723482349

2350

23512352235323542355

243

Page 84: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

does not include operation attributes that are written to the job object as job description attributes (i.e., "job-name"). [NOTE: See also the description of the Get-Printer-Attributes operation in [STD92] and the distinction between "xxx-default", "xxx-ready", and "xxx-supported" attributes when "xxx" is any Job Template attribute that a Client can supply as a top-level attribute vs. (see [RFC3382]) when "xxx" is a member attribute for a Job Template 'collection' attribute (e.g. The "media-color-supported" Printer attribute lists the values of the “media-color” member attribute of the “media-col” collection attribute, but does not belong to the 'job-template' attribute group, or to the ‘printer-description’ attribute group).]

12.10 job-ids-supported (boolean)

The “job-ids-supported” Printer Description attribute indicates whether the Printer supports the “job-ids” Operation in the following existing operations: Purge-Jobs (if supported) and Get-Jobs. A Printer MUST support the "job-ids-supported " Printer Description attribute in order to claim support of this Job and Printer Extensions - Set 2 Specification.

12.11 job-delay-output-until-default (type2 keyword | name(MAX))

The “job-delay-output-until-default” Printer Description attribute specifies the default value supplied by the Printer if the Client omits the ‘job-delay-output-until” Job Template attribute.

12.12 job-delay-output-until-supported (1setOf type2 keyword | name(MAX))

The “job-delay-output-until-supported” Printer Description attribute specifies the values supported by the Printer for the "job-delay-output-until" Job Template attribute. See the values defined for the "job-hold-until" Job Template attribute in [STD92].

12.13 Why there is no job-delay-output-until-time-default attribute

There is no “job-delay-output-until-time-default” attribute because it would either be a fixed date and time in the future or would have to be updated periodically. Neither seem useful enough to be worth the complexity.

[6.1.1] job-hold-until-time (dateTime)

This attribute permits the Client to specify the date and time after which the Job MUST become a candidate for processing.

Page 84 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

244245235623572358235923602361236223632364

2365

2366236723682369

2370

237123722373

2374

2375

237623772378

2379

238023812382

2383

23842385

246

Page 85: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[6.2] Note: The Client application has the choice to present the "job-hold-until-time" to the end user as either a delta time (the amount of time until the Job is no longer held), or a fixed time when the Job will no longer be held. The fixed time is represented using the appropriate time zone(s) (usually the client'sjob-delay-output-until-time-supported (rangeOfInteger(0:MAX))

The “job-delay-output-until-time-supported” Printer Description attribute specifies the span of relative amount of time in seconds into the future that the printer supports keeping the output from being produced. The Printer MUST use the time range to validate a job that is submitted with a “job-delay-output-until-time” attribute.

time zone, or the Printer's time zone, or both if the Client is capable). See the description of "printer-current-time" in [STD92].

If the Printer supports the "job-hold-until-time" attribute, the "job-hold-until" attribute MUST also be supported. However, if the "job-hold-until" attribute is supported, the "job-hold-until-time" attribute NEED NOT be supported. If the Printer supports the "job-hold-until-time" attribute, the "printer-current-time" (dateTime) Printer Description attribute MUST also be supported.

The Client MUST NOT supply both the "job-hold-until" and "job-hold-until-time" Job Template attributes in a Job Creation request. If the Client supplies such a malformed request by supplying both, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code [STD92]. Note: it is not an error for a Client to supply and a Printer to support a "job-hold-xxx" and a "job-delay-output-xxx" in the same Job Creation operation, since they control separate aspects of Job processing.

A Flow Diagram for Job Creation operations with the "job-hold-until-time" attribute is shown in Figure 3 below. A Time Sequence Diagram for a Job with "job-hold-until-time", a Job with "job-delay-output-until-time", and 4 ordinary print Jobs is shown in Figure 4 below. A Hold Job request is sent by the Client with a "job-hold-until-time" value specified as a dateTime. The Printer calculates the number of seconds between the "job-hold-until-time" value and the "printer-current-time" value. If this number of seconds is NOT in the range specified by the Printer's "job-hold-until-time-supported" attribute value, then the Printer either:

[1.] rejects the request with the 'client-error-attributes-or-values-not-supported' status code [STD92] if the "ipp-attribute-fidelity" is 'true'; or

[2.] accepts the request with the 'successful-ok-ignored-or-substituted-attributes', if the client-supplied "ipp-attribute-fidelity" is 'false'. Also, the Printer MUST return the "job-hold-until-time" attribute and the client-supplied value in the Unsupported Attributes group of the operation response. If the "job-hold-until-time" value is earlier than the "printer-current-time" value plus the minimum value of "job-hold-until-time-

Page 85 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

247248

2386

2387

2388

2389

2390

2391

2392239323942395

23962397

23982399240024012402

240324042405240624072408

24092410241124122413241424152416

24172418

24192420242124222423

249

Page 86: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

supported", the Printer MUST set the value of the Job's "job-hold-until-time" to the current dateTime plus the minimum time. Also, if the "job-hold-until-time" value is later than the "printer-current-time" value plus the maximum value of "job-hold-until-time-supported", the Printer MUST set the value of the Job's "job-hold-until-time" to the current dateTime plus the maximum time.

If the Job is accepted, the Printer then determines the state in which to place this Job. If the dateTime value is equal to or sooner than the Printer's "printer-current-time" dateTime value, then no hold is placed on the Job and the Job moves into the pending state (assuming there are no other reasons to hold the Job).

If the value of this attribute specifies a time period that is in the future, the Printer 1) MUST add the 'job-hold-until-specified' value to the Job's "job-state-reasons" attribute, 2) MUST move the Job to the 'pending-held' state, and 3) MUST NOT schedule the Job for printing until the specified time arrives. When the specified time arrives, the Printer MUST remove the 'job-hold-until-specified' value from the Job's "job-state-reason" attribute and, and then if there are no other Job state reasons that keep the Job in the 'pending-held' state, the Printer MUST consider the Job as a candidate for processing by moving the Job to the 'pending' state.

Page 86 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

25025124242425242624272428

2429243024312432

24332434243524362437243824392440

2441

252

Smith Kennedy, 09/04/18,
This was already here, so I simply eliminated section 7.3.1 (11.3.1 in the old numbering)
Page 87: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Figure 4 below shows a Time Sequence Diagram for an implementation of 6 Jobs, where Job 1 is a Job Delay Output Job that processes the Job partly before the delay date-time arrives, Job 2 is a Hold Job, and Jobs 3 through 6 are ordinary print Jobs that complete successfully. Jobs 3-5 are submitted before either of the Job Hold Time (B) and the Job Delay Time (A) occurs. Job 6 is submitted after the Job Hold Time (B) but before the Job Delay Time (A) occurs. OPTIONAL "job-state-reasons" values are shown in parenthesis.

Page 87 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

Figure 6 - Job Creation Operation Flow Diagram with "job-hold-until-time" specified

253254

2442

2443

2444

244524462447244824492450

255

Page 88: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.14[6.3] Why there is no job-hold-until-time-default

There is no "job-hold-until-time-default" attribute because it would either be a fixed time in the future or would have to be updated periodically. Neither seem useful enough to be worth the complexity.

Page 88 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

Figure 7 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs

256257

2451

2452

2453

2454

245524562457

258

Page 89: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.15[6.4] job-hold-until-time-supported (rangeOfInteger(0:MAX))

The "job-hold-until-supported" Printer Description attribute specifies the span of relative amount of time in seconds into the future that the printer supports keeping the submitted job in the 'pending-held' state. The Printer MUST use the time range to validate a job that is submitted with a "job-hold-until-time" attribute.

12.16 job-password-supported (integer(0:255))

The "job-password-supported" Printer Description attribute indicates the maximum length that the Printer will accept for the unencrypted password which the Client will encrypt as the value of the "job-password" Operation Attribute. A conforming Printer MUST be able to accept 255 octets without truncation. However, a Printer MAY be implemented as a gateway to another print system that cannot accept the full 255-octet range, in which case the Client MUST NOT allow an unencrypted password greater than the length specified by this attribute.

12.17 job-password-length-supported (rangeOfInteger (0:255))

The 4.1 "job-password-length-supported" Printer Description attribute specifies the minimum and maximum supported length of the unencrypted password, measured in characters. The character set encoding is specified by the "job-password-repertoire-configured" attribute (Section XX). The Printer is configured to accept an empty password if the range's minimum value is 0 (zero).

This attribute complements the existing "job-password-supported" attribute [PWG5100.11], which specifies the maximum password length supported before encryption, measured in octets.

12.18 job-password-encryption-supported (1setOf (type2 keyword | name(MAX)))

The "job-password-encryption-supported" Printer Description attribute specifies which encryption methods the Printer supports for Secure Print.

If the "job-password" operation attribute is supported, then this attribute MUST be supported. Standard keyword values are in Table 15. The 'md2', 'md4', 'md5', and 'sha' keywords have been DEPRECATED. Others may be deprecated in the future as the state of the art of cryptography evolves.

Table 15 - Standard keywords for "job-password-encryption-supported"

Keyword Description

Page 89 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

259260

2458

2459246024612462

2463

2464246524662467246824692470

2471

24722473247424752476

247724782479

2480

2481

24822483

2484248524862487

2488

261

Page 90: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'none' The "job-password" attribute value is passed in the clear. No encryption has been applied. This value might also be used when the entire Operation is sent over a secure connection.

'md2' The encryption method uses the MD2 hash algorithm defined in RFC 1319. [1]

'md4' The encryption method uses the MD4 hash algorithm defined in RFC 1320. [1]

'md5' The encryption method uses the MD5 hash algorithm defined in RFC 1321. [1]

'sha' The encryption method uses the Secure Hash Algorithm 1 defined by the National Institute of Standards and Technology. [1]

'sha2-224' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 224 bits.

'sha2-256' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 256 bits.

'sha2-384' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 384 bits.

'sha2-512' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits.

'sha2-512_224' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 224 bits.

'sha2-512_256' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 256 bits.

'sha3-224' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 224 bits.

'sha3-256' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology,

Page 90 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

262263

264

Kennedy, Smith (Wireless & Standards Architect), 02/12/19,
Suggest we remove this...
Page 91: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

with an output size of 256 bits.

'sha3-384' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 384 bits.

'sha3-512' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits.

'sha3-512_224' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 224 bits.

'sha3-512_256' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 256 bits.

'shake-128' The encryption method uses the SHAKE128 method defined by the National Institute of Standards and Technology, with an output size of 128 bits.

'shake-256' The encryption method uses the SHAKE256 method defined by the National Institute of Standards and Technology, with an output size of 256 bits.

[1] - Deprecated

12.19 job-password-repertoire-supported (1setOf (type2 keyword))

The "job-password-repertoire-supported" attribute enumerates the job password repertoires (allowable characters, character sets and encodings) the Printer can be configured to use.

The keywords are named according to a 'REGISTRY_ENCODING_RANGE' naming structure convention. Table 16 lists the standard keywords. Vendor repertoire keywords, prefixed with "vendor_" to indicate a vendor-specific registry, may also be used. Vendor repertoire keywords SHOULD be registered with the PWG to achieve interoperability. As an example, a vendor may choose to register the 'vendor_us-ascii_lowercase' keyword to specify a repertoire limited to using only lowercase characters from the US ASCII encoding.

The "utf-8" encoding name indicates the use of Network Unicode [RFC5198].

Page 91 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

265266

2489

2490

249124922493

2494249524962497249824992500

2501

267

Page 92: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Table 16: job-password-repertoire-supported keyword definitions

Keyword Description

'iana_us-ascii_digits' Value must consist of only ASCII digits (0x30-0x39)

'iana_us-ascii_letters' Value must consist of only US ASCII letters (0x41-0x5A, 0x61-0x7A)

'iana_us-ascii_complex' Value must consist of US ASCII letters and numbers, with at least one uppercase letter, one lowercase letter, and one digit (0x30-0x39, 0x41-0x5A, 0x61-0x7A)

'iana_us-ascii_any' Value must consist of US ASCII printable characters (0x20-0x7e)

'iana_utf-8_digits' Value must consist of only UTF-8 numerical digits

'iana_utf-8_letters' Value must consist of UTF-8 letters

'iana_utf-8_any' Value must consist of UTF-8 printable characters

12.20 job-password-repertoire-configured (type2 keyword)

The "job-password-repertoire-configured" attribute indicates the password repertoire currently configured for this Printer. The value of this attribute MUST be one of the values specified in the Printer's "job-password-repertoire-supported" attribute (section XX). A supporting Client can use this attribute's value to limit User input so that the value in "job-password" will comply with the configured password repertoire.

12.21 job-phone-number-default (uri)

The default value supplied by the Printer if the Client omits the ‘job-phone-number” Job Template attribute.

12.22 job-phone-number-supported (boolean)

A true value indicates that the Printer accepts the “job-phone-number” attribute.

12.23 job-print-password-supported (rangeOfInteger(0:64))

This Printer Description attribute specifies the minimum and maximum supported length of the unencrypted "job-print-password", measured in characters (not octets). The process collecting the password from the User MUST enforce these upper and lower bounds when

Page 92 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2682692502

2503

25042505250625072508

2509

25102511

2512

2513

2514

251525162517

270

Page 93: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

accepting the unencrypted password value before encryption. The character set encoding is specified by the "job-password-repertoire-supported" attribute (section 12.26). The Printer is configured to accept an empty password if the range's minimum value is 0 (zero).

12.24 job-print-password-encryption-supported (1setOf type2 keyword)

This attribute specifies the types of password encryption supported by the Printer. The standard keywords for this attribute listed in Table 17 are a subset of those defined for "job-password-encryption-supported" (section 12.19).

Table 17 - Standard keywords for "job-storage-encryption-supported"

Keyword Description

'sha2-224' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 224 bits.

'sha2-256' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 256 bits.

'sha2-384' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 384 bits.

'sha2-512' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits.

'sha2-512_224' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 224 bits.

'sha2-512_256' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 256 bits.

'sha3-224' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 224 bits.

'sha3-256' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 256 bits.

Page 93 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

271272251825192520

2521

252225232524

2525

273

Kennedy, Smith (Wireless & Standards Architect), 02/11/19,
Should we keep this?
Page 94: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'sha3-384' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 384 bits.

'sha3-512' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits.

'sha3-512_224' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 224 bits.

'sha3-512_256' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 256 bits.

'shake-128' The encryption method uses the SHAKE128 method defined by the National Institute of Standards and Technology, with an output size of 128 bits.

'shake-256' The encryption method uses the SHAKE256 method defined by the National Institute of Standards and Technology, with an output size of 256 bits.

12.25 job-print-password-repertoire-supported (1setOf type2 keyword)

The "job-print-password-repertoire-supported" attribute specifies the repertoires (allowable characters, character sets and encodings) the Printer supports can be configured to use.

The keywords are named according to a 'REGISTRY_ENCODING_RANGE' naming structure convention. Table 1 lists the standard keywords. Vendor repertoire keywords, prefixed with "vendor_" to indicate a vendor-specific registry, may also be used. Vendor repertoire keywords SHOULD be registered with the PWG to achieve interoperability. As an example, a vendor may choose to register the 'vendor_us-ascii_lowercase' keyword to specify a repertoire limited to using only lowercase characters from the US ASCII encoding.

The "utf-8" encoding name indicates the use of Network Unicode [RFC5198].

12.26 job-recipient-name-default (name(MAX))

The default value supplied by the Printer if the Client omits the ‘job-recipient-name” Job Template attribute.

Page 94 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

274275

2526

25272528

2529253025312532253325342535

2536

2537

25382539

276

Page 95: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.27 job-recipient-name-supported (boolean)

A true value indicates that the Printer accepts the “job-recipient-name” attribute.

12.28 job-retain-until-supported (type2 keyword | name(MAX))

The OPTIONAL "job-retain-until-supported" Printer Description attribute specifies the keywords the Printer supports for indicating the duration of time that the Printer should retain the Job once it has entered the 'completed' state in the "Job Retention Phase" [STD92].

12.29 job-retain-until-time-supported (rangeOfInteger(0:MAX))

The "job-retain-until-time-supported" Printer Description attribute specifies the span of relative amount of time in seconds into the future that the printer supports retaining the submitted job if it reaches the 'completed' state [STD92]. The Printer MUST use the time range to validate a Job that is submitted with a "job-retain-until-time" attribute.

12.30 job-save-disposition-default (collection)

The "job-save-disposition-default (collection)" attribute specifies the “job-save-disposition” member attributes and values that the Printer will provide, if any, if the Client omits the "job-save-disposition" collection attribute. A Printer MUST support the same member attributes for these default attributes as it supports for the corresponding Job Template attributes (see Table 7).

The "save-info" (1setOf collection) member attribute of the “job-save-disposition-default” Printer attribute specifies the save information member attributes and values that the Printer will provide, if any, if the Client omits the “job-save-disposition” Job Template attribute entirely. A Printer MUST support the same member attributes for these default attributes as it supports for the corresponding Job Template attributes (see Table 7 and Table 8), with the single exception, that the “save-name” member attribute MUST NOT be supported (since the Printer MUST use the “job-name” attribute to generate the default “save-name”).

If the Client supplies the “job-save-disposition” Job Template attribute, but omits the “save-info” member attribute, the Printer uses its “save-location-default” and “save-disposition-default” Printer attributes and the job’s “job-name” attribute to create the job’s “save-info” member attribute, rather than using the “save-info” member attribute of the Printer’s “job-save-disposition-default” attribute (see "save-info" description above).

Page 95 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

277278

2540

2541

2542

2543254425452546

2547

2548254925502551

2552

25532554255525562557

25582559256025612562256325642565

25662567256825692570

279

Kennedy, Smith (Wireless & Standards Architect), 02/11/19,
Under what conditions does "name(MAX) need to be an alternative syntax when we want to support both registered keywords and vendor-unique extensions?
Page 96: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.31 job-save-disposition-supported (1setOf type2 keyword)

The "job-save-disposition-supported (1setOf type2 keyword)" attribute identifies the names of the member attributes supported in the "job-save-disposition" collection attribute, i.e., the names of the member attributes in Table 7 that the Printer supports. The RECOMMENDED way for a Client to determine whether or not a Printer support saving Jobs, is to query this Printer attribute.

12.32 job-spooling-supported (type2 keyword)

This attribute indicates whether or not Jobs are spooled before the document data is interpreted (RIPped). In other words, this attribute indicates when Jobs are processed by the Printer with respect to when the Printer receives and returns responses to Job Creation requests (i.e., Print-Job, Print-URI), receives and returns responses to Document Creation requests (i.e., Send-Document and Send-Uri requests) and "receives" or "fetches" such document data.

The value of this attribute returned in a Get-Printer-Attributes response MAY depend on the "document-format" attribute supplied in the Get-Printer-Attributes request (see [STD92] sections 4.2.5.1 and 7.2). If the Printer does not support this attribute, then the spooling behavior is implementation dependent.

The Get-Printer-Supported-Values operation (see description in [RFC3380]) returns a '1setOf type2 keyword' so that all possible values that the implementation is capable of supporting are indicated.

The standard keyword values are:

Keyword Description

'spool' The Printer starts processing a job until the Printer has (1) accepted and responded to the Job Creation request and all Document Creation requests (for a multi-document job) and (2) has "received" or "fetched" all document data for the job, i.e., spool rather than stream.

'stream' The Printer starts processing a job (1) before the Printer has accepted all Document Creation requests and (2) before the Printer has "received" or "fetched" all document data, i.e., stream rather than spool.

'automatic' The Printer chooses whether to process a job before or after the Printer has accepted all Document Creation requests and has "received" or "fetched" all document data, i.e., the Printer MAY spool and/or stream depending on policy and other factors, such as

Page 96 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

280281

2571

25722573257425752576

2577

257825792580258125822583

2584258525862587

258825892590

2591

282

Page 97: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

the document format, including a combination of spooling and streaming.

12.33 job-storage-supported (1setOf keyword)

This attribute Indicates whether the Printer supports the Job Storage feature, and what members are supported by the Printer.

12.34 job-storage-access-supported (1setOf type2 keyword)

This attribute specifies the Job Storage access modes supported by the Printer. Standard keywords for the "job-storage-access" attribute are listed in Table 18.

Table 18 - Standard keywords for "job-storage-access-supported"

Keyword Meaning

"all" Visible and available to all users

"owner" Accessible by only the submitting user

12.35 job-storage-disposition-supported (1setOf type2 keyword)

This attribute specifies the Job Storage dispositions supported by the Printer. Standard keywords for the "job-storage-access" attribute are listed in Table 19.

Table 19 - Standard keywords for "job-storage-disposition-supported"

Keyword Meaning

"none" The Printer MUST print the Job. The Printer MUST NOT retain the Job in the Job Retention phase; it MUST move it immediately to the Job History phase.

"print-and-store" The Printer MUST print the Job. If the Job reaches the 'completed' state, it MUST retain the Job in the Job Retention phase.

"store-only" The Printer MUST NOT print the Job. The Printer MUST retain the Job in the Job Retention phase.

Page 97 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

283284

2592

25932594

2595

25962597

2598

2599

2600

2601

26022603

2604

285

Page 98: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.36 job-storage-group-supported (1setOf name(MAX))

This attribute specifies the set of supported groups (folders or directories) into which a stored job could be configured to reside when it is stored.

12.37 max-save-info-supported (integer(1:MAX))

The "max-save-info-supported" Printer Description attribute specifies the maximum number of “save-info” member attribute collections that a Printer can accept in a job request. If the number of “save-info” member attribute collections supplied by a Client in a Job Creation operation exceeds the value of this attribute, the Printer MUST accept or reject the request as described in the "save-info" description in the "job-save-disposition" description (see description in section 7.9). If the Printer only supports one “save-info” collection, then the Printer MAY either (1) support this attribute with a value of ‘1’ or (2) omit support of this attribute. The RECOMMENDED way for a Client to determine whether or not a Printer supports saving Jobs, is to query the “job-save-disposition-supported” Printer attribute (see description in section 7.9.3).

12.38 media-col-database (1setOf collection)

The OPTIONAL "media-col-database" Printer Description attribute enables a Client to query the set of pre-defined media collections available in the printer’s media database, if the “media-col” attribute is supported. This attribute is identical in format and syntax to “media-col-ready” but returns the entire set of pre-defined media collections known by the printer instead of just the media collections currently in the printer trays. If this attribute is supported, the members of the collections correspond to the supported members of the “media-col” attribute.

The Printer MUST NOT return this attribute in the response to the Get-Printer-Attributes operation when the Client requested the 'all' or 'printer-description' group names. Therefore, the Client must request this attribute explicitly in order to get the media collections. The reason for this recommendation is that the amount of data returned in the response would be very large when combined with all of the other attributes.

12.39 pdl-init-file-location-supported (1setOf uri)

The "pdl-init-file-location-supported (1setOf uri)" Printer attribute specifies the path(s) to the directory (directories) of the supported initialization file(s) that the Client MAY ask the Printer to send to its PDL interpreter prior to processing the document.

Page 98 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

2862872605

2606

26072608

2609

2610261126122613261426152616261726182619

2620

2621262226232624262526262627

26282629263026312632

2633

263426352636

288

Page 99: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.40 pdl-init-file-name-supported (1setOf name(MAX))

The "pdl-init-file-name-supported (1setOf name(MAX))" Printer attribute specifies the name(s) of the supported initialization file(s) that the Client MAY ask the Printer to send to its PDL interpreter prior to processing the document.

12.41 pdl-init-file-name-subdirectory-supported (boolean)

The “pdl-init-file-name-subdirectory-supported” (boolean) Printer Description attribute indicates whether or not the Printer will accept a FORWARD SLASH (“/”) character in the value of the “pdl-init-file-name” member attribute. If the value is ‘false’ and the Client supplies a FORWARD-SLASH (“/”) in the “save-name” value, the Printer MUST reject the request and return the ‘client-error-attributes-or-values-not-supported’.

12.42 pdl-init-file-default (1setOfcollection)

The "pdl-init-file-default" Printer Description attribute collection specifies the default initialization file (or list of files) and related information that the Printer will use if the Client omits the "pdl-init-file" Job Template attribute in a Job Creation operation. The member attributes are defined in Table 11. A Printer MUST support the same member attributes and values for this default collection attribute as it supports for the corresponding "pdl-init-file" Job Template attribute.

A "pdl-init-file-name" within "pdl-init-file-default" collection with a “0 length value” will be used to indicate that Printer has no default initialization file (see description of “none” values in section 2.7 in [PWG5100.3]).

12.43 pdl-init-file-supported (1setOf type2 keyword)

The "pdl-init-file-supported" Printer Description attribute identifies the keyword names of the member attributes supported in the "pdl-init-file" collection Job Template attribute, i.e., the keyword names of the member attributes in Table 11 that the Printer supports.

12.44 pdl-init-file-entry-supported (1setOf name(MAX))

The "pdl-init-file-entry-supported (1setOf name(MAX))" Printer attribute specifies the name(s) of the supported initialization file(s) that the Client MAY ask the Printer to send to its PDL interpreter prior to processing the document.

12.45 printer-detailed-status-messages (1setOf text(MAX))

The OPTIONAL "printer-detailed-status-messages" Printer Description attribute specifies additional detailed and technical information about the printer, in the same way “job-

Page 99 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

289290

2637

263826392640

2641

26422643264426452646

2647

264826492650265126522653

265426552656

2657

265826592660

2661

266226632664

2665

26662667

291

Page 100: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

detailed-status-messages” provides additional information about a job. Printer-specific information such as fault and warning messages can be captured, and the 1setOf syntax supports multiple messages. The Printer NEED NOT localize the message(s), since they are intended for use by the system administrator or other experienced technical persons. Clients MUST NOT attempt to parse the value(s) of this attribute.

12.46 proof-print-default (collection)

The "proof-print-default" (collection) Printer Description attribute specifies the default value of "proof-print" MUST use when not supplied in a request. A Printer MUST support the same member attributes for this default collection as it supports for the corresponding "proof-print" Job Template attribute.

12.47 proof-print-supported (1setOf type2 keyword)

The "proof-print-supported" (1setOf (type2 keyword)) Printer Description attribute specifies which member attributes of "proof-print" that the Printer supports.

12.48 There is no save-info-default Printer attribute

There is no “save-info-default” Printer attribute. If the Client supplies the “job-save-disposition” Job Template attribute but omits the “save-info” member attribute, the Printer creates a single collection value for the “save-info” member attribute using from the Printer’s “save-location-default” and “save-document-format-default” Printer attributes and the job’s “job-name” attribute (see "save-info" description above).

12.49 save-disposition-supported (1setOf type2 keyword)

The “save-disposition-supported (1setOf type2 keyword)” Printer attribute defines the save dispositions supported by the Printer for the “save-disposition” member attribute (see standard keyword values in above table).

12.50 save-info-supported (1setOf type2 keyword)

The "save-info-supported (1setOf type2 keyword)" attribute identifies the names of the member attributes supported in the "save-info" collection attribute, i.e., the names of the member attributes in Table 8 that the Printer supports.

12.51 save-location-default (uri)

The “save-location-default (uri)” Printer attribute indicates the value that the Printer supplies, if the Client omits the “save-location” member attribute from the “save-info” member attribute.

Page 100 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

29229326682669267026712672

2673

2674267526762677

2678

26792680

2681

26822683268426852686

2687

268826892690

2691

269226932694

2695

269626972698

294

Smith Kennedy, 08/27/18,
???
Page 101: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

12.52 save-location-supported (1setOf uri)

The “save-location-supported (1setOf uri)” Printer attribute defines a list of URI values supported by the Printer object for the "save-location" member attribute (see above description). The Client MUST supply a value of the "save-location" member attribute that completely matches one of these values. Note: The administrator can configure the “save-location-supported” to have separate directories for individuals, groups, projects, or MAY just have one directory for all saved Jobs. Whether or not access control is applied to these directories is IMPLEMENTATION DEPENDENT.

12.53 There is no “save-name-default” Printer attribute

There is no “save-name-default”. If the Client omits the “save-name” member attribute when supplying the “save-info” member attribute, the Printer uses the job’s “job-name” attribute as the value of the “save-name” attribute (described above).

12.54 save-name-supported (boolean)

The “save-name-supported (boolean)” attribute indicates support for the OPTIONAL "save-name" member attribute of the "save-info" member attribute. Note: The means to query the Printer to see what saved Jobs it has is a potential future extension.

12.55 save-name-subdirectory-supported (boolean)

The “save-name-subdirectory-supported” (boolean) Printer Description attribute indicates whether the Printer supports a FORWARD SLASH (“/”) character in the “save-name” (name(MAX)) member attribute. If the value is ‘false’ and the Client supplies a FORWARD-SLASH (“/”) in the “save-name” value, the Printer MUST reject the request and return the ‘client-error-attributes-or-values-not-supported’.

12.56 save-document-format-default (mimeMediaType)

If the Client supplies the “save-info” member attribute but omits the “save-document-format” member attribute (see above description), the Printer MUST use the value of its “save-document-format-default” (mimeMediaType) attribute.

12.57 save-document-format-supported (1setOf mimeMediaType)

The "save-document-format-supported" (1setOf mimeMediaType) attribute specifies the document formats which a Printer supports for saving Jobs.

If a Printer supports this Job Save & Reprint Feature, the Printer SHOULD be able to Reprint using the Resubmit-Job operation (see section 4.3.1.2) for all the formats in which

Page 101 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

295296

2699

2700270127022703270427052706

2707

270827092710

2711

271227132714

2715

27162717271827192720

2721

272227232724

2725

27262727

27282729

297

Page 102: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

it is capable of saving Jobs, i.e., the mimeMediaType values of the Printer’s “document-format-supported” Printer Description attribute SHOULD be a superset of the values of the Printer’s “save-document-format-supported” attribute. For example, if a Printer supports the ‘application/X-single-page-tiff’ format for saving Jobs, it SHOULD also accept and support a Resubmit-Job operation to reprint that job.

12.58 which-jobs-supported (1setOf type2 keyword)

The "which-jobs-supported" Printer Description attribute enables a Client to query the printer for the set of values that can be supplied one at a time as a value of the “which-jobs” operation attribute of the Get-Jobs operation. Current allowed values for “which-jobs” are ‘completed’ and ‘not-completed’, and the “which-jobs” extensions described above extend the values to include keywords corresponding to the symbolic names of all IPP “job-state” enum values and to include Proof Print Jobs and Saved Jobs. The Printer MUST support the "which-jobs-supported" Printer Description attribute if it supports the "proof-print" and/or "job-save-disposition" Job Template attributes. See section 11.2 for the values).

If this attribute is supported, then the Printer MUST support both ‘completed’ and ‘not-completed’ as valid values.

13. Additional Values and Semantics for Existing IPP AttributesThis section defines additional values for existing attributes. The existing text for those attributes is not reproduced here in order to prevent deviations.

13.1 pdl-override-supported (type2 keyword) Printer Description attribute

The following additional OPTIONAL value is defined for the “pdl-override-supported” (type2 keyword) Printer Description attribute (see [STD92] section 5.4.28): 'guaranteed': This value indicates that the Printer object:

1. Guarantees that the IPP Job Template attribute values take precedence over instructions of any form embedded anywhere in the document data.

2. Guarantees that no PDL instruction is performed that does not correspond to a current value in the corresponding "xxx-supported" Printer attribute. In such a situation, the Printer MAY (a) abort the job, (b) stop the Printer, (c) hold the job, or (d) substitute on the fly with one of the current values of its "xxx-supported" attribute. This choice MAY be fixed by the implementation or configurable by the system administrator and MAY depend on the attribute.

Page 102 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

29829927302731273227332734

2735

273627372738273927402741274227432744

27452746

2747

27482749

2750

2751

275227532754

27552756

275727582759276027612762

300

Page 103: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

3. Provides the "queue override" semantics as described below, if the "xxx-supported" Printer attribute is configured with only a single value.

See [STD92] for a full description of how this attribute interacts with and affects other IPP attributes, especially the "ipp-attribute-fidelity" attribute.

13.1.1 Additional semantics for 'guaranteed' value of "pdl-override-supported" attribute

If a Printer's "pdl-override-supported" is 'guaranteed', then the Printer MUST follow these additional semantics for Job Creation requests and Get-Job-Attributes or Get-Jobs responses.

Whether or not the Client supplied the "xxx" Job attribute in the Job Creation operation, the Printer MUST accept or reject the job based on "ipp-attribute-fidelity" as usual. However, if "ipp-attribute-fidelity" was 'false' and the supplied "xxx" value did not match any of the "xxx-supported" values, the Printer MUST accept the job as usual, but MUST NOT store that attribute on the Job object. The Printer MUST return an "xxx" Job attribute in subsequent Get-Job-Attributes and Get-Jobs responses according to the following rules:

a) If the Client did not supply the "xxx" Job attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has only a single value (the so-called queue override case), then the Printer MUST return an "xxx" attribute with that current single value in a Get-Job-Attributes or Get-Jobs, response, as if the Client had supplied "xxx" Job attribute with that value.

Rationale for this new behavior: because the printed result will be the same as if the Client had supplied the "xxx" Job attribute with that single value (since that value will override a corresponding PDL instruction), the response should reflect those (new) semantics.

b) If the Client did not supply the "xxx" Job attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has more than one value, then the Printer MUST NOT return that "xxx" attribute in a Get-Job-Attributes or Get-Jobs response.

Rationale: Same behavior as for the other values of "pdl-override-supported".

c) If the Client did supply the "xxx" Job attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has only a single value (the so-called queue override case), then the Printer MUST return that "xxx" Job attribute with the Printer's current "xxx-supported" value in a Get-Job-Attributes or Get-Jobs response, as if the Client had supplied "xxx" with that value.

Rationale for this new behavior: because the behavior of the Printer is to enforce that "xxx" Job attribute with the Printer's current single (override) value.

Page 103 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

30130227632764

27652766

27672768

276927702771

277227732774277527762777

2778277927802781278227832784278527862787

278827892790279127922793

27942795279627972798279928002801

303

Page 104: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

d) If the Client did supply the "xxx" attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has more than one value and one of them match, then the Printer MUST return that "xxx" Job attribute with the Client-supplied value in a Get-Job-Attributes or Get-Jobs response.

Rationale: Same behavior as for the other values of "pdl-override-supported".

e) If the Client did supply the "xxx" attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has more than one value but none of them match, then the Printer MUST NOT return that "xxx" Job attribute with the Client-supplied value in a Get-Job-Attributes or Get-Jobs response. It MUST either (1) not return the attribute at all or return it with one of the supported values, depending on implementation.

Rationale: Same behavior as for the other values of "pdl-override-supported".

The above five cases are represented in Table 13.

Table 20 - Rules for 'guaranteed' value of "pdl-override-supported" attribute

Client Supplies Printer supports "xxx-supported"

Printer's response to Job query request Queue override?

omits "xxx" 'a' "xxx" = 'a' yes

omits "xxx" 'a', 'b' nothing is returned no

supplies "xxx" = ? 'a' "xxx" = 'a' yes

supplies "xxx" = 'a' 'a', 'b' "xxx" = 'a' no

supplies "xxx" = 'c' 'a', 'b' Either nothing is returned or "xxx" = one of the supported values, depending on implementation.

no

13.1.2 Examples of queue override

The queue override extension allows an implementation to guarantee that only advertised supported attribute values are actually performed, and that unsupported values embedded as instructions in the document data, will not be performed. This extension is also a further step in making a Printer object indicate what it really supports in both the protocol and the PDL and what it does not, i.e., "truth in advertising". In other words, the absence of a value in the Printer's "xxx-supported" attribute indicates a guarantee that the value cannot be performed.

For example, an administrator that wants to force two-sided printing could set the Printer's "sides-supported" to the two values: 'two-sided-long', 'two-sided-short' (see [STD92]).

Page 104 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

304305280228032804280528062807

28082809281028112812281328142815

2816

2817

2818

2819282028212822282328242825

28262827

306

Page 105: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Thus, a PDL that contained an embedded simplex (one-sided) instruction would be overridden in one of the following ways: (1) aborted, (2) held, or (3) automatically forced to two-sided, depending on implementation and/or site policy.

As another example, an administrator could set up an IPP Printer that always staples by setting the "finishings-supported" to 'staple' only, i.e. by removing the 'none' keyword value (see [STD92]). In order to allow Jobs not to be stapled on the same physical piece of hardware, the administrator would use fan-in (if supported) to set up another IPP Printer that does include the 'none' keyword value in its "finishings-supported" attribute.

The values of the Printer's "xxx-supported" attribute are not only what the Printer will accept in the print protocol (e.g. IPP) as attributes, but also as corresponding values of embedded PDL instructions. If a value that is not in the "xxx-supported" list is encountered in either the print protocol or the PDL, it MUST NOT be performed (no matter what the value of "ipp-attribute-fidelity" is).

The four combinations of unsupported IPP attribute values and unsupported PDL instruction values are:

1. Unsupported attribute value in the protocol and "ipp-attribute-fidelity" = 'false' (independent of "pdl-override-supported"):

The Printer object MUST accept the Job with the unsupported attribute value. However, the Printer object will always return only one of its "xxx-supported" values in response to Get-Jobs or Get-Job-Attributes. Depending on implementation, the Printer can perform this substitution once at job submission time, or each time the job is queried.

2. Unsupported attribute value in the protocol and "ipp-attribute-fidelity" = 'true' (independent of "pdl-override-supported"):

The Printer MUST reject the job.

3. Unsupported embedded instruction value in the PDL and "pdl-override-supported" = 'attempted' or 'not-attempted' (and independent of "ipp-attribute-fidelity"):

When an implementation encounters a value that is not in the "xxx-supported" list, it makes no special action and allows it to be performed. See the definition of "Supports" in [STD92] that indicates that performing a PDL instruction that is not supported in the protocol is an allowed behavior.

4. (New case) Unsupported embedded instruction value in the PDL and "pdl-override-supported" = 'guaranteed' (and independent of "ipp-attribute-fidelity"):

The unsupported embedded instruction value MUST NOT be performed. The behavior is implementation-dependent if an unsupported embedded instruction

Page 105 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

307308282828292830

28312832283328342835

28362837283828392840

28412842

28432844284528462847284828492850

2851285228532854

2855285628572858285928602861

28622863286428652866

309

Page 106: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

value is encountered. For example, the Printer MAY abort the job or substitute on the fly with one of the current values of its "xxx-supported" attribute. This choice MAY be fixed by the implementation or configurable by the system administrator and MAY depend on the Job Template attribute.

13.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf type2 keyword) Printer Description attribute

This section defines additional keyword values for the IPP "which-jobs" (type2 keyword) Operation attribute of the Get-Jobs operation (see [STD92] section 4.2.6) and the “which-jobs-supported” (1setOf type2 keyword) Printer Description attribute (see section 10.9) to include keywords corresponding to the symbolic names of all IPP “job-state” enum values (see [PWG5100.3] section 4.3.7), an ‘all’ value, and values to correspond to Proof Print Jobs, Saved Jobs, and Stored Jobs. The following keywords are OPTIONAL to support, unless indicated otherwise in their descriptions.

Keyword Description

'aborted' This includes any Job object whose state is 'aborted'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'all' This includes all Job objects, that is any Job object that is considered 'completed' or 'not-completed' as defined by these values above.

'canceled' This includes any Job object whose state is 'canceled'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

13.3 job-phone-number (uri)

This attribute contains the contact telephone number for the Job.

If supported, the Printer MUST accept the ‘tel:’ URI scheme [RFC2806] and MAY accept other schemes, such as the ‘fax:’ scheme [RFC2806]. Any processing by the Printer of the “job-phone-number” attribute is implementation-dependent.

[6.5] job-recipient-name (name(MAX))

This attribute contains the name of the person that is to receive the output of the job. The value of the "job-recipient-name" attribute is commonly printed on Job sheets printed with the job. An example of another use of the "job-recipient-name" attribute is if the Printer

Page 106 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3103112867286828692870

2871

2872

2873287428752876287728782879

2880

2881

288228832884

2885

288628872888

312

Page 107: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

accesses a database to get Job delivery instructions for the recipient of a job. A zero-length value indicates that there is no Job recipient name.

If the Client omits this attribute in a create request, the Printer MAY use the “job-recipient-name-default” attribute value, unless it has not been configured by the administrator, or MAY use the “authenticated user” name (see [MOD1.1] section 8.3), depending on implementation.

[6.6] job-save-disposition (collection)

This attribute is used to archive/save the Document Data of a job, such that the Job can be re-printed on demand at some undefined time in the future.

See also section 4.3 of this specification for a detailed description of the Job Save and Reprint Feature. If the Printer supports the “job-save-disposition” attribute for Saving Jobs, then it MUST also support the “proof-print” attribute for proofing jobs. However, if the Printer supports the “proof-print” attribute, it NEED NOT support the “job-save-disposition” attribute.

If a Printer object is able to save a Job in a particular document format, the Printer MUST be able to process that document format for reprint using the Reprocess-Job and Resubmit-Job operations. See section 12.4 Conformance Requirements for the OPTIONAL "job-save-disposition" Job Template attribute for additional conformance requirements for clients and Printers.

[6.6.1.1] Interaction with "job-hold-until" and "job-hold-until-time"

The "job-hold-until" attribute causes the Job to be moved to the ‘pending-held’ state, which prevents processing of the job. The "job-save-disposition" attribute on the other hand does not become relevant until the Job is moved to the ‘processing’ state.

These two attributes can be used together in the same Job Creation operation with no adverse interactions.

The member attributes of the "job-save-disposition" attribute are:

Table 21 - "job-save-disposition" member attributes

Member Attribute Name Request Printer Support

save-disposition MUST MUST

save-info MAY MUST

Interaction with "

Page 107 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

31331428892890

2891289228932894

2895

28962897

28982899290029012902

29032904290529062907

2908

290929102911

29122913

2914

2915

2916

315

Page 108: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'completed' This includes any Job object whose state is 'completed'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'pending' This includes any Job object whose state is 'pending'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'pending-held' This includes any Job object whose state is 'pending-held'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'processing' This includes any Job object whose state is 'processing'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'processing-stopped' This includes any Job object whose state is 'processing-stopped'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'proof-print' Proof Print Jobs, i.e., Jobs that have been submitted using the "proof-print" Job Template attribute and which are in the ‘completed’, ‘canceled’, or ‘aborted’ state. If the "proof-print" Job Template attribute is supported, this value MUST be supported.

'saved' Saved Jobs, i.e., Jobs that have been saved using the "job-save-disposition" Job Template attribute and which are in the ‘completed’, ‘canceled’, or ‘aborted’ state. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'stored' Stored Jobs, i.e., Jobs that have been stored using the "job-storage " Job Template attribute and which are in the ‘completed’, ‘canceled’, or ‘aborted’ state. If the "job-storage" Job Template attribute is supported, this value MUST be supported.

Page 108 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

316317

318

Page 109: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

13.4 job-state-reasons" (1setOf type2 keyword) Job Description attribute

The following table defines additional keyword values for the IPP “job-state-reasons” Job Description attribute (see [STD92], [RFC3998], [PWG5100.3], and [PWG5100.6]. The descriptions indicate conditional conformance, if any.

Keyword Description

'job-printed-successfully' The job was successfully printed but was not successfully saved as indicated by ‘job-saved-with-warnings’ or ‘job-saved-with-errors’. If the job was not requested to be saved, then use the ‘job-completed-successfully’ value instead. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-printed-with-errors' The job was printed with errors but was successfully saved as indicated by ‘job-saved-successfully’ or was not successfully saved as indicated by ‘job-saved-with-warnings’ or ‘job-saved-with-errors’. If the job was not requested to be saved, then use the ‘job-completed-with-errors’ value instead. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-resuming' The printer is in the process of moving the job from a suspended condition to a candidate for processing. If the Resume-Job operation [RFC3998] is supported, this value MUST be supported.

'job-saved-successfully' The job was successfully saved. The Printer MUST also supply ‘job-completed-successfully’, except when “save-disposition” = ‘save-only’. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-saved-with-errors' The job did not save successfully (whether or not it was printed successfully, printed with warnings, printed with errors, or not printed). The Printer MUST ensure that none of the saved job is accessible, if it was unable to successfully save all of the job. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-saved-with-warnings' The job was saved with warnings. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-saving' The printer is transmitting the job to the save location. This is similar to the 'job-printing' value. If the "job-save-disposition" Job Template attribute is supported, this value MUST be

Page 109 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

319320

2917

2918

291929202921

321

Page 110: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

supported.

'job-spooling' Same as 'job-incoming' with the specialization that the Printer is spooling the document data before processing it. This value corresponds to the 'spool' or 'automatic' value of the "job-spooling-supported" Printer Description attribute.

'job-streaming' Same as 'job-incoming' with the specialization that the Printer is processing the document data as it is being received (that is, the job is not being spooled, but rather is being processed in chunks by the output device and is being imaged during reception). This value corresponds to the 'stream' or 'automatic' value of the "job-spooling-supported" Printer Description attribute.

'job-suspended-by-operator' The job has been indefinitely suspended by the printer operator. If the Suspend-Current-Job operation [RFC3998] is supported, this value MUST be supported.

'job-suspended-by-system' The job has been indefinitely suspended by the Printer’s system software during normal processing of the job.

'job-suspended-by-user' The job has been indefinitely suspended by the user. If the Suspend-Current-Job operation [RFC3998] is supported, this value MUST be supported.

'job-suspending' The printer is in the process of moving the job from a processing condition to a suspended condition where other Jobs can be processed. If the Suspend-Current-Job operation [RFC3998] is supported, this value MUST be supported.

Note: The semantics of this attribute or the set of valid values may be different for different document formats.

13.4.1 Additional Semantics for "job-state-reasons" attribute for "job-cancel-after" attribute

This section adds additional semantics to the 'job-hold-until-specified' value defined in support of the "job-cancel-after" attribute (section 8.4):

Keyword Description

'job-canceled-after-timeout' The Job was canceled because the timer with a duration specified by the "job-cancel-after" attribute (section 7.4) to the "job-state-reasons" Job Status attribute..

Page 110 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

322323

29222923

29242925

29262927

324

Page 111: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

13.4.2 Additional Semantics for "job-state-reasons" attribute for "job-hold-until-time" attribute

This section adds additional semantics to the 'job-hold-until-specified' value defined in other standards:

Keyword Description

'job-hold-until-specified' The value of the job's "job-hold-until" [STD92] or "job-hold-until-time" (see section 7.6 above) Job Template attribute was specified with a time period that is still in the future. The job MUST NOT be a candidate for processing before this reason is removed and there are no other reasons to hold the job. This value SHOULD be supported if the "job-hold-until" Job Template attribute is supported.

13.4.3 Additional Semantics for "job-state-reasons" attribute for "job-save-disposition" attribute

This section defines additional values that are defined in support of the "job-save-disposition" attribute in section 7.9).

Many of the existing "job-state-reasons" attribute values can apply to a ‘save-only’ Jobjob as well as a Jobjob submitted for printing. If the value of the “job-disposition” attribute is 'save-only', the "job-state-reasons" attribute MAY be set with existing values such as 'job-incoming', 'resources-are-not-ready' (such as a font), 'job-interpreting', and 'job-queued'. Likewise, errors that occur on a saved Jobjob MAY have existing "job-state-reasons" attribute values such as 'job-data-insufficient', 'document-access-error', 'submission-interrupted', 'job-canceled-by-user', 'aborted-by-system', etc.

There are also new four new "job-state-reasons" keyword values REQUIRED that support a saved Jobjob -- 'job-saving', 'job-saved-successfully', 'job-saved-with-warnings', and 'job-saved-with-errors' -- and these have been added to the list defined above. The existing ‘job-completed-successfully’, job-completed-with-warnings’, and ‘job-completed-with-errors’ values are also clarified in the list above for implementations that support the "job-save-disposition" Job Template attribute, in such a way that these values remain compatible with Printers and clientsClients that do not support Jobjob saving.

Table 14 enumerates the possible combinations of print and save success, warning, and error conditions. Note that two values occur only when there are print warnings/errors and a save error.

Table 22 - Values of "job-state-reasons" attribute for various Jobjob conditions

Not saving Save was successful Save was unsuccessful

Not printing <not possible> 'job-completed-successfully' 'job-saved-with-errors'

Page 111 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

32532629282929

29302931

29322933

29342935

2936293729382939294029412942

2943294429452946294729482949

295029512952

2953

327

Page 112: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Print successful'job-completed-successfully' 'job-completed-successfully' 'job-saved-with-errors'

Print warnings'job-completed-with-warnings' 'job-completed-with-warnings'

'job-completed-with-warnings', 'job-saved-with-errors'

Print errors'job-completed-with-errors' 'job-completed-with-errors'

'job-completed-with-errors', 'job-saved-with-errors'

Print warnings and errors

'job-completed-with-errors' 'job-completed-with-errors'

'job-completed-with-errors', 'job-saved-with-errors'

[6.6.1.2] save-disposition (type2Additional keyword)

This values for the “media-type” member attribute specifies whether or not the Job MUST be printed and/or saved. When a Job moves into the ‘processing’ state, the value of the member attribute "save-disposition" is checked to determine what is to happen during the ‘processing’ state.

The "save-disposition" member attribute specifies processing steps that either MUST occur or that are prohibited. However, other processing steps MAY occur during the ‘processing’ state, provided they are not prohibited by the value of the "save-disposition" member attribute.

When a Saved Job is reprinted using any of the operations that reprint a Retained Job (e.g., Reprocess-Job or Resubmit-Job), the Printer MUST NOT copy the “job-save-disposition” attribute from the Saved Job to the copy of the Saved Job so that the Job is not re-saved again. Note: the copy of the Saved Job will be saved again, if the Resubmit-Job operation supplies its own “save-job-disposition” attribute.

Standard keyword values are:

Keyword Description

'none' The Printer MUST print the job. The Printer MUST NOT save any portion of the Job except for processing purposes. The Printer MUST NOT apply the "job-save-disposition-default" attribute.

If the print was successful, the Printer MUST add the ‘job-completed-successfully’ value to the job’s “job-state-reasons” attribute.

If the printing had (1) warnings or (2) errors (possibly with warnings), the Printer MUST add the ‘job-completed-with-warnings’ or ‘job-completed-with-errors’ value, respectively, to the

Page 112 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

328329

2954

2955295629572958

2959296029612962

29632964296529662967

2968

330

Smith Kennedy, 09/04/18,
Moved here to remove the old section 11.3.2 (it would have been 7.3.2 in this draft's numbering)
Page 113: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

job’s “job-state-reasons” attribute.

'save-only' The following constraints apply to the ‘processing’ of the job:

The Job MUST NOT be printed.

The Document Data MUST be saved to the location specified by the "save-location" member attribute.

The Printer’s Job scheduling algorithm MAY depend on whether or not the Job is ‘save-only’. However, the Printer MUST save the Job while the Job is in the ‘processing’ state (the job’s “job-state” attribute is set to ‘processing’). Thus, the Printer MUST move the Job (typically from the ‘pending’ state) to ‘processing’ state and add the ‘job-saving’ value (see description of new "job-state-reasons" later in section 11.3) to the job’s “job-state-reasons” attribute.

When the Printer completes saving the job, the Printer MUST move the Job to the ‘completed’ state by setting the job’s “job-state” attribute to the ‘completed’ value and removing the ‘job-saving’ value (see description of new "job-state-reasons" later in section 11.3) from the job’s “job-state-reasons” attribute.

If the save was not successful, the Printer MUST add the 'job-saved-with-warnings' or ‘job-saved-with-errors’ value to the job’s “job-state-reasons” attribute (see description of new "job-state-reasons" later in section 11.3). If the Printer encounters an error during saving, such that a reprint of that Job using the Reprocess-Job (see section 4.3.1.1) or Resubmit-Job (see section 4.3.1.2) operations will not produce complete results, the Printer MUST reject the Reprocess-Job or Resubmit-Job with the error client-error-not-possible.

'print-save' The following constraints apply to the ‘processing’ of the job:

The Job MUST be printed.

The Document Data MUST be saved to the location specified by the "save-location" member attribute.

The order of the processing steps required for the ‘print-save’ disposition is implementation dependent. However, the Printer MUST save the Job during the same period that it prints the job, namely, while the Job is in the ‘processing’ state (the job’s “job-

Page 113 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

331332

333

Page 114: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

state” attribute is set to ‘processing’). Thus, the Printer MUST move the Job (typically from the ‘pending’ state) to ‘processing’ state and add the ‘job-printing’ and ‘job-saving’ value (see description of new "job-state-reasons" later in section 11.3) to the job’s “job-state-reasons” attribute at the appropriate times.

When the Printer completes saving the job, then the Printer MUST move the Job to the ‘completed’ state by setting the job’s “job-state” attribute to the ‘completed’ value and removing the ‘job-printing’ and ‘job-saving’ (see description of new "job-state-reasons" later in section 11.3) values from the job’s “job-state-reasons” attribute.

If both the save and the print were successful, the Printer MUST add the ‘job-completed-successfully’ value to the job’s “job-state-reasons” attribute.

If the printing had (1) warnings or (2) errors (possibly with warnings), the Printer MUST add the ‘job-completed-with-warnings’ or ‘job-completed-with-errors’ value, respectively.

As with the ‘save-only’ value, if the save was not successful, the Printer MUST add the 'job-saved-with-warnings' or ‘job-saved-with-errors’ value to the job’s “job-state-reasons” attribute (see description of new "job-state-reasons" later in section 11.3).

[6.6.2] save-info (1setOf collection)

This member attribute is a collection that contains the attributes that tell the Printer how to save the job. This includes the format in which the Document Data MUST be saved, and the location to which these are saved. Multiple save locations or document formats MAY be saved by specifying multiple collections within this attribute.

If the Client supplies the “job-save-disposition” Job Template attribute but omits the “save-info” member attribute, the Printer supplies a single collection value for the “save-info” member attribute from the values of its “save-location-default” attribute, the job’s “job-name”, and its “save-document-format-default” attribute (see descriptions immediately below).

A Client MUST supply in a request a number of collections not to exceed the maximum number supported specified in the "max-save-info-supported" Printer Description attribute (see "max-save-info-supported" description in section 10.6). As with any Job Template attribute, if the Client does supply more values than the Printer supports and the values of

Page 114 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

334335

2969

2970297129722973

29742975297629772978

2979298029812982

336

Page 115: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

the “ipp-attribute-fidelity” is ‘false’ (or omitted), the Printer MUST accept the job, return the ‘successful-ok-ignored-or-substituted-attributes’ status code, return the ignored values in the Ignored Attributes group, use the first n values, and ignore the remaining values. If the Client does supply more values than the Printer supports and the values of the “ipp-attribute-fidelity” is ‘true’, the Printer MUST reject the request and return the ‘client-error-request-entity-too-large’ status code.

The "save-info" collection member attributes are:

Table 23 - "save-info" member attributes

Member Attribute Name Request Printer Support

save-location MUST MUST

save-name MAY MAYsave-document-format MAY MUST

[6.6.2.1] save-location (uri)

This member attribute specifies the path to the directory as a URI where the Printer MUST save the Document Data and other information.

The "save-location" and (“save-location-default” and “save-location-supported”) attribute value MUST be an Absolute URI [RFC2396]. Absolute URIs are specified with a URI scheme, an optional authority component, and an absolute path (e.g., ‘ftp://printhost.printco.com/var/spool/jobdir/’ or ‘file:///job-repository/jobdir/’).

Note: As any other member attribute of a Job Template attribute, the Printer validates the “save-location” member attribute as follows: If the Client supplies the “save-location” member attribute, the value MUST match one of the values of the Printer’s “save-location-supported” (1setOf uri) attribute. If the value does not match, the Printer’s action depends on the value of the job’s “ipp-attribute-fidelity” (boolean) attribute: If “ipp-attribute-fidelity” is ‘false’ or omitted, the Printer MUST accept the job, return the ‘successful-ok-ignored-or-substituted-attributes’ status code, return the ignored attributes in the Unsupported Attributes Group, and perform one of the following actions DEPENDING ON IMPLEMENTATION:

[1.] Ignore the attribute and not save the job;

[2.] Put the Job in the ‘held’ state and let the operator fix the problem, either by changing the job’s “save-location” attribute value or adding the value to the Printer’s “save-location-supported” attribute; or

[3.] Substitute the job’s “save-location” value with one of the values of the Printer’s “save-location-supported” values.

Page 115 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

337338298329842985298629872988

2989

2990

2991

29922993

2994299529962997

299829993000300130023003300430053006

3007

300830093010

30113012

339

Page 116: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

If “ipp-attribute-fidelity” is ‘true’, the Printer MUST reject the request, return the ‘client-error-attributes-or-values-not-supported’ status code, along with the “job-save-disposition” attribute in the Unsupported Attributes Group.

If the Client wants to put the saved Job in a sub-directory (whether it exists or not) of one of the directories specified by the “save-location-supported” Printer attribute, the Client supplies that sub-directory name as part of the “save-name” attribute (see "save-name" description below), not as part of the “save-location” member attribute.

Note: As with any other ‘name’, ‘integer’, ‘uri’, or ‘collection’ Job Template or Job Template member attribute, the administrator can suspend validation by configuring the Printer’s “user-defined-values-supported” attribute with the ‘save-location’ keyword (see “user-defined-values-supported” description in [PWG5100.3]), so that the user can specify an arbitrary path and the Printer will accept the job. If the Printer cannot process the Job using the specified value for "save-location", then the Printer MUST hold the Job so that an operator can attempt to create the necessary sub-directories to populate the path, if they don’t already exist, or change the job’s “save-location” attribute value. See Table 10 below entitled "Printer actions for various Job and Printer attribute values", at the end of the "job-save-disposition" description.

If the Client supplies the “save-info” member attribute but omits the “save-location” member attribute, the Printer supplies the “save-location” member attribute value from its “save-location-default” attribute (see “save-location-default” description below).

Table 24 lists the URI Schemes defined for use in the “save-location” member attribute.

Table 24 - URI Schemes for "save-location" member attribute

URI Scheme Description Printer Support

ftp Use IETF FTP protocol [RFC959], [RFC2228], [RFC2640] MUST

file

Use the Printer’s configured file system. Since the ‘file:’ URI scheme cannot be separated from the Printer object’s native file system, the semantic of the ‘file:’ URI scheme is IMPLEMENTATION DEPENDENT. Also, the ‘file:’ URI scheme on some Printer objects MAY be limited to the local file system, while on other Printer objects it MAY be configured to use a network file system.

The Printer implementation MAY allow the system administrator to configure where the ‘file:’ scheme is based in the file system. However, the base for the ‘file:’ scheme MUST be the same as for all other uses of the ‘file’: scheme, such as the value of the “document-uri” operation attribute in a Printer-URI operation [STD92].

MAY

Page 116 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

340341301330143015

3016301730183019

30203021302230233024302530263027302830293030

303130323033

3034

3035

342

Page 117: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

http Use HTTP protocol with the Put operation to save the job. MUST

It is RECOMMENDED that for each URI scheme supported for saving jobs, that all of these values have the first token in the file path be ‘job-repository’. Then an administrator that has to manage the saved jobs for several Printers will have a consistent naming schemes for locating all the saved jobs by whatever means used to access the saved jobs.For example, for the ‘file:’ scheme, all of the values SHOULD start out with: file:///job-repository/ and for the ‘ftp:’ scheme, all of the values SHOULD start out with: ftp://xxx/job-repository/. (Note: in URIs, the final "/" is redundant, and the Printer MUST behave the same whether or not the final “/” is present).

[6.6.2.2] save-name (name(MAX))

This member attribute specifies the name of the saved Job in the directory specified by the “save-location” member attribute. The Client can supply a “save-name” attribute value that is either a simple file name or a relative path where each component of the path is separated by a FORWARD SLASH (“/”) character. The “save-name-subdirectory-supported” Printer Description attribute indicates whether or not the Printer supports a FORWARD-SLASH (“/”) in the “save-name” value. Whether the FORWARD SLASH when supported is actually implemented as a sub-directory is IMPLEMENTATION DEPENDENT.

There is no requirement that the "save-name" attribute value in combination with the "save-location" attribute value specify an identification that is unique. Thus, if the "save-name" attribute value in combination with the "save-location" attribute value specifies a handle that already exists, the Printer MUST accept the Job and save the Job with the duplicate “save-name” value. This requirement is because a Saved Job is referenced for re-printing using the “job-id” attribute value assigned by the Printer that is unique at least with respect to that Printer.

If the “save-name” member attribute is not specified by the Client in the “job-save-disposition” Job Template attribute, the Printer object MUST generate a “save-name” attribute value for the Job using the job’s “job-name” attribute value.

Note: Printers MUST generate a “job-name” value, when the Client does not supply a “job-name” operation attribute [STD92], to ensure there is always a “job-name” value.

[6.6.2.2.1.1] Why there is no “save-name-default” Printer attribute

There is no “save-name-default”. If the Client omits the “save-name” member attribute when supplying the “save-info” member attribute, the Printer uses the job’s “job-name” attribute as the value of the “save-name” attribute (described above).

Page 117 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

343344

30363037303830393040304130423043

3044

30453046304730483049305030513052

3053305430553056305730583059

306030613062

306330643065

3066

306730683069

345

Page 118: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[6.6.2.3] save-document-format (mimeMediaType)

This member attribute indicates the document format in which the Job content (Document Data) MUST be saved. If the "job-save-disposition" attribute is supported, the Printer object MUST support the "save-document-format" member attribute.

If the Client supplies the “save-info” member attribute but omits the “save-document-format” member attribute, the Printer MUST use the value of its “save-document-format-default” attribute (see above "save-info" description).

Although there can be a many-to-one relationship of documents to a job, all documents in a Job specified with a disposition of 'save' or 'print-save' MUST be saved in the same format as specified by the "save-document-format" attribute value. A Job MAY be saved to multiple formats by specifying multiple collection values for the "save-info" member attribute.

The “job-save-disposition” member attribute (and the “save-document-format” member attribute) is NOT defined to be used with the “page-overrides” attribute (see [PWG5100.6]). Thus, all documents MUST be saved in the same document format in each saved job.

The ‘mimeMediaType’ values defined for the “save-document-format” attribute are listed below. All values MUST include saving PDL data. A Printer MUST support at least one value. However, at this time, this specification does NOT REQUIRE a Printer to support any particular formats for saving jobs.

If the saved Job is submitted to a different make-and-model Printer that supports the same document-format (i.e., the same value of the “document-format” operation attribute in the Document Creation request), then the Printer MUST be able to print the job, but the output cannot be guaranteed to appear exactly the same as the original output.

MIME Media Type Description

Any PDL document format

If any PDL document-format value is supplied from the Printer’s “document-format-supported” attribute, such as ‘application/postscript’, then the Printer MUST save the PDL data in that document format.

Printer implementations are free to store the saved data in any form they want for convenient, fast, and/or compact re-printing using Reprocess-Job or Resubmit-Job, and NEED NOT be identified by a distinct mimeMediaType value in the “save-document-format-supported” Printer attribute.

The ‘application/octet-stream’ value MUST NOT be supplied for this attribute since it doesn’t make any sense for saving jobs.

Page 118 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3463473070

307130723073

307430753076

30773078307930803081

308230833084

3085308630873088

3089309030913092

348

Page 119: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

The referenced specifications that define the saved format MUST meet the conformance requirements listed in section 12.4.2.1.

[6.6.2.4] Printer actions for various combinations of attributes

This section lists the Printer actions for various combinations of "save-location" (uri), "save-name" (name(MAX)), "save-location-supported" (1setOf uri), existing saved jobs, ipp-attribute-fidelity (boolean), "user-defined-values-supported" (1setOf keyword) and Printer actions.

The possible Printer actions are (see above descriptions of "save-location" and "save-name" for details):

[1.] reject: The Printer rejects the Job Creation request, returns the ‘client-error-attributes-or-values-not-supported’ status code and the “job-save-disposition” attribute and value in the Unsupported Attributes group.

[2.] accept-save: The Printer accepts the Job Creation request, returns the ‘successful-ok’ status code, and attempts to create all necessary files and sub-directories.

[3.] accept-substitute: The Printer accepts the Job Creation request, returns the ‘successful-ok-ignored-or-substituted-attributes’ status code and the “job-save-disposition” attribute and value in the Unsupported Attributes group, and, DEPENDING ON IMPLEMENTATION: (1) ignores the attribute and does not perform the save, (2) puts the Job in the ‘held’ state and let the operator fix the problem, either by changing the job’s “save-location” attribute value or adding the value to the Printer’s “save-location-supported” attribute, or (3) substitutes the job’s “save-location” value with one of the values of the Printer’s “save-location-supported” values.

[4.] accept-hold: The Printer accepts the Job Creation request, returns the ‘successful-ok’ status code, and holds the Job for the operator to resolve the conflict so that the Job can be saved.

Table 10 shows the Printer actions for the various possible value combinations of the other Job and Printer attributes. In the example, there is already one saved job: ‘a/bar’. The Printer supports three save-location directories: a, b, c.

Table 25 - Printer actions for various Job and Printer attribute values

MIME Media Type

save-name

save-location-supported

existing saved jobs

ipp-attribute-fidelity

user-defined-values-supported

Printer action

a foo a,b,c a/bar T | F none accept-save

Page 119 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

34935030933094

3095

3096309730983099

31003101

310231033104

31053106

310731083109311031113112311331143115

311631173118

311931203121

3122

351

Page 120: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

a d/foo a,b,c a/bar T | F none accept-save

a bar a,b,c a/bar T | F none accept-hold

d foo a,b,c a/bar F none accept-substitute

d foo a,b,c a/bar T none reject

a foo a,b,c a/bar T | F save-location accept-save

a d/foo a,b,c a/bar T | F save-location accept-save

a bar a,b,c a/bar T | F save-location accept-hold

d foo a,b,c a/bar F save-location accept-hold

d foo a,b,c a/bar T save-location accept-hold

a/d foo a,b,c a/bar F save-location accept-hold

a/d foo a,b,c a/bar T save-location accept-hold

[6.6.2.4.1] Why there is no save-info-default Printer Description attribute

There is no “save-info-default” Printer attribute. If the Client supplies the “job-save-disposition” Job Template attribute but omits the “save-info” member attribute, the Printer creates a single collection value for the “save-info” member attribute using from the Printer’s “save-location-default” and “save-document-format-default” Printer attributes and the job’s “job-name” attribute (see "save-info" description above).

[6.6.3] media-col (collection)

[6.7]

The additional OPTIONAL keyword values for the “media-type” member attribute of the “media-col” Job Template attribute (see [PWG5100.3]) are:

Keyword Description

'aluminum' Conventional or CtP press plate [1]

'cardboard' Cardboard [1]

'cd' CD disc to be printed on [1]

Page 120 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

352353

3123

31243125312631273128

3129

3130

31313132

354

Smith Kennedy, 08/27/18,
I don't understand why there are discrete lines here when the only difference between the pairs is "T" / "F" - why not combine them with a "T | F" as above?
Page 121: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'corrugated-board' Corrugated board [1]

'disc' CD or DVD disc to be printed on [1]

'double-wall' Double wall corrugated board [1]

'dry-film' Dry film [1]

'dvd' DVD disc to be printed on [1]

'end-board' End board using in the JDF Bundling process to protect each end of a bundle of products, which are typically then strapped together [1]

'embossing-foil' Embossing foil [1]

'film' Film [1]

'flexo-base' For the base layer of flexo plates [1]

‘flexo-photo-polymer’ For the photopolymer layer of flexo plates [1]

'flute' Flute layer of a corrugated board [1]

'foil' Foil [1]

'gravure-cylinder' Gravure cylinder [1]

'image-setter-paper' Contact paper as replacement for film [1]

'imaging-cylinder' Reusable direct imaging cylinder in a press [1]

'laminating-foil' Laminating foil [1]

'letterhead' Separately cut Sheets of an opaque material including a letterhead [1]

'mounting-tape' Flexo plate mounting tape [1]

'other' Not one of the defined values [1]

'paper' Paper [2]

'plate' Plate [1]

polyester Polyester [1]

'screen' Used for screen printing [1]

Page 121 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

355356

357

Page 122: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'self-adhesive' Self-adhesive [1]

'single-face' Single face corrugated board [1]

'single-wal' Single wall corrugated board [1]

'sleeve' For flexo sleeves [1]

'shrink-foil' Shrink foil [1]

'tractor' Tractor feed with holes [1]

'triple-wall' Triple wall corrugated board [1]

'wet-film' Wet film [1]

[1] - From [JDF1.4] Media/@MediaTypeDetails attribute.

13.5 Additional semantics for the IPP "media-col" Job Template Attribute

The following member attributes in Table 15 and their semantic descriptions have been added to the existing IPP “media-col” Job Template attribute [PWG5100.3]..

Table 26 - Additional "media-col" member attributes

Member Attribute Name Request Printer Support

media-tooth MAY MAY

media-grain MAY MAYmedia-thickness MAY MAY

These additional "media-col" collection member attributes definitions are:

13.5.1[6.7.1] media-tooth (type2 keyword | name(MAX))

The "media-tooth" member attribute indicates the desired tooth (or roughness) of the media being specified. The source for this attribute is [ISO10175].

The tooth of a medium is particularly important for those marking engines that use pens (e.g. plotters) to mark the medium. The type of pen used shall match the tooth of the medium for best resolution.

Standard keyword values for "media-tooth" are:

Page 122 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

358359

3133

3134

3135

31363137

3138

3139

3140

31413142

314331443145

3146

360

Page 123: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Keyword Description

'antique' Rougher than vellum surface [1]

'calendared''calandered' Extra smooth or polished uncoated paper [1]

'coarse' The specified media should have a coarse tooth or rough finish.

'fine' The specified media should have a fine tooth or smooth finish.

'linen' Texture of coarse woven cloth [1]

'medium' The specified media should have a medium tooth or regular finish.

'smooth' Smooth [1]

'stipple' Fine pebble finish [1]

'uncalendared''uncalandered'

Rough, unpolished and uncoated papers [1]

'vellum' Slightly rough surface [1]

[1] - From [JDF1.4] Media/@Texture attribute

The Administrator can define a custom media tooth using the 'name' (MAX) attribute syntax of the "media-tooth-supported" (1setOf (type2 keyword | name(MAX))) Printer attribute. Note: as with other Job Template and member attributes, the user can also supply user-defined tooth names that are not among the values of the “media-tooth-supported” Printer attribute, if the Administrator has configured the Printer's "user-defined-values-supported" attribute (see [PWG5100.3]) to contain the 'media-tooth' attribute keyword value.

13.5.1.1[6.7.1.1] media-tooth-supported (1setOf (type2 keyword | name(MAX)))

The "media-tooth-supported" (1setOf (type2 keyword | name(MAX))) Printer attribute identifies the values of this "media-tooth" member attribute that the Printer supports, i.e., the media tooth supported.

13.5.2[6.7.2] media-grain (type2 keyword | name(MAX))

The "media-grain" member attribute indicates the desired grain of the media being specified. The source for this attribute is [ISO10175].

Page 123 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

361362

3147

3148314931503151315231533154

3155

315631573158

3159

31603161

363

Page 124: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Grain affects the curl and the folding of the medium. Some marking engines are sensitive to the resulting curl. Standard keyword values for "media-grain" are:

Keyword Description

'x-direction' The direction of the paper fibers is in the short dimension (i.e. the x-direction) of the medium.

'x-direction' The direction of the paper fibers is in the long dimension (i.e. the y-direction) of the medium.

See section 2.4 of [PWG5100.3] regarding the coordinate system.

The Administrator can define a custom media grain using the 'name' (MAX) attribute syntax of the "media-grain-supported" (1setOf (type2 keyword | name(MAX))) Printer attribute. Note: as with other Job Template and member attributes, the user can also supply user-defined grain names that are not among the values of the “media-grain-supported” Printer attribute, if the Administrator has configured the Printer's "user-defined-values-supported" attribute (see [PWG5100.3]) to contain the 'media-grain' attribute keyword value.

13.5.2.1[6.7.2.1] media-grain-supported (1setOf (type2 keyword | name(MAX)))

The "media-grain-supported" (1setOf (type2 keyword | name(MAX))) Printer attribute identifies the values of this "media-grain" member attribute that the Printer supports, i.e., the media grain supported.

The Administrator can define custom media types using the 'name' (MAX) attribute syntax of the "media-supported" (1setOf (type2 keyword | name(MAX))) Printer attribute. Note: as with other Job Template and member attributes, the user can also supply user-defined material names that are not among the values of the “media-supported” Printer attribute, if the Administrator has configured the Printer's "user-defined-values-supported" attribute (see [PWG5100.3]) to contain the 'media' attribute keyword value.

13.5.3[6.7.3] media-thickness (integer(1:MAX))

The "media-thickness" member attribute indicates the thickness of the media being specified. The source for this attribute is JDF v1.0.

The unit of measure for the "media-thickness" member attribute is one hundredth of a millimeter. This unit is equivalent to 1/2540th2540 th of an inch resolution.

13.5.3.1[6.7.3.1] media-thickness-supported (rangeOfInteger(1:MAX))

The "media-thickness-supported" (rangeOfInteger(1:MAX)) Printer attribute identifies the values of this "media-thickness" member attribute that the Printer supports.

Page 124 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

36436531623163

3164

3165316631673168316931703171

3172

317331743175

317631773178317931803181

3182

31833184

31853186

3187

31883189

366

Page 125: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[6.7.4] pdl-init-file (1setOf collection)

This attribute controls initialization of the Printer’s Page Description Language (PDL) interpreter. This attribute specifies the files that the Printer uses to initialize the PDL interpreter before it starts interpreting each Input Document (i.e. file) in a Job with one exception. When the value of "multiple-document-handling" is 'single-document' or ‘single-document-new-sheet’, a PDL interpreter processes all of the Input-Documents of a Job as if the Input Documents were a single file. In this case, the PDL interpreter is initialized just before processing the first Input Document only.

Some PDLs (i.e. PostScript and HP PCL) have the ability to define reusable macros, code fragments, fonts, and other resources. These components may reside either within the body of the document file to be printed or within files that can be sent to the Printer’s PDL interpreter separately. Having the ability to send these “pre-initialization” (prep) files separately from the main body of the Job to be printed, enables an application to “pre-condition” the PDL interpreter with these definitions ahead of time. This in turn makes it possible to reduce the size of a given document data file to be printed and to reuse the components on other jobs.

The exact mechanism by which an initialization file (or list of initialization files) is installed on the Printer is implementation dependent and outside of the current scope of IPP.

Upon receipt of the "pdl-init-file" collection attribute(s) the Printer will send the initialization file (or list of files) referenced to the Printer’s PDL interpreter for processing BEFORE starting to process the document(s) attached to the Job (in the Print-Job request) or referenced by the Job (in the Print-URI request).

If the Printer receives more than one "pdl-init-file" collection in a given print request, then the list of initialization files will be sent to the Printer’s PDL interpreter in the order that they are encountered in the Job Template attributes.

Table 11 lists the member attributes of the "pdl-init-file" Job Template attribute and specifies whether Clients MUST supply them in collection values and whether Printers MUST support them if supporting this collection attribute. The following sub-sections define these member attributes.

Table 27 - "pdl-init-file" member attributes

Member Attribute Name Request Printer Support

pdl-init-file-location MAY MUST

Page 125 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3673683190

3191

3192

3193319431953196319731983199

32003201320232033204320532063207

32083209

3210321132123213

321432153216

3217321832193220

3221

369

Page 126: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

pdl-init-file-name MUST MUST

pdl-init-file-entry MAY MAY

[6.7.5] pdl-init-file-location (uri)

This member attribute must be an Absolute URI [RFC 2396] that specifies the path to the directory where the initialization file to be sent to the Printer’s PDL interpreter will be found. According to RFC 2396, an Absolute URI MUST have a URI scheme, MAY have an authority (host name) component, and MUST have an absolute path (e.g., ‘ftp://printhost.printco.com/var/spool/jobinitfiledir/initfile1’ or ‘file:///jobinitfiledir/initfile1’).

[6.7.6] pdl-init-file-name (name(MAX))

This member attribute specifies the name of the initialization file within the directory specified by the "pdl-init-file-location" member attribute that the Printer MUST send to its PDL interpreter prior to processing the document.

The “pdl-init-file-subdirectory-supported” Printer Description attribute indicates whether or not the Printer supports a FORWARD-SLASH (“/”) in the “pdl-init-file-name” value. Whether the FORWARD SLASH when supported is actually implemented as a sub-directory is IMPLEMENTATION DEPENDENT.

A well-formed request MUST include at least the name of the initialization file to be used (i.e. the "pdl-init-file-location" or directory containing the initialization file need not be supplied by the Client and in fact, might not be known to the client). The Client can supply a "pdl-init-file-name" attribute value that is either a simple file name or a relative path where each component of the path is separated by a FORWARD SLASH (“/”) character. The "pdl-init-file-name" member attribute value concatenated with the “pdl-init-file-location” attribute value (supplying a “/” between them, if necessary) specifies the initialization file to be used. For example, if “pdl-init-file-location” is ‘a/b’ or ‘a/b/’ and "pdl-init-file-name" is ‘c/d’, the resulting file path is: ‘a/b/c/d’.

[6.7.7] pdl-init-file-entry (name(MAX))

This member attribute is an optional member of the collection that, if present, specifies an entry point within the init file that the PDL interpreter starts at.

[6.7.8] proof-print (collection) REQUIRED Job Template attribute

This attribute allows a user to specify the attributes of the proof print(s) of the Job that are to be printed prior to the printing the full run of the job. After the proof prints have been produced, the Printer MUST retain the completed Job as a Proof Print Job for a period of time sufficient to allow users to proof the job, rather than aging it out after an implementation-defined period which SHOULD be longer than the period for ordinary completed jobs [STD92]. When a Proof Print Job is reprinted using any of the operations

Page 126 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

370371

3222

32233224322532263227

3228

322932303231

3232323332343235

323632373238323932403241324232433244

3245

32463247

3248

324932503251325232533254

372

Page 127: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

that reprint a Retained Job (e.g., Reprocess-Job or Resubmit-Job), the Printer MUST NOT copy the “proof-print” attribute from the Proof Print Job to the copy of the Proof Print Job so that the Job is not re-proofed again. Only if the Resubmit-Job operation supplies its own “proof-print” attribute, will the copied Job be proofed. .

A Client MUST be able to supply and a Printer MUST support this attribute in order to claim support of this IPP Job and Printer Extensions – Set 2 v2.0 Specification, respectively. See section 12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template attribute for additional conformance requirements for clients and Printer.

Table 12 lists the member attributes of the "job-sheets-col" collection attribute:

Table 28 - "proof-print" member attributes

Member Attribute Name Request Printer Support

proof-print-copies MUST MUST

mediaMUST be one or the other, but NOT both

MUSTmedia-col MAY

[6.7.9] proof-print-copies (integer (0:MAX))

This member attribute specifies the number of copies the Printer MUST produce in the proof job. The proof print(s) are produced using the Job Template attributes specified with the Job, except any overridden by member attributes in this collection.

If the "proof-print-copies" value is 0, then no proof prints are produced.

After the requested number of proof prints have been successfully produced by the Printer, then the Printer transitions the Job to the ‘completed’ state and retains the Job for a period of time that is long enough for the users to proof the output of the Proof Print Job, rather than aging the Job out.

[6.7.10] media (type2 keyword | name(MAX)) or media-col (collection)

Either the "media" [STD92] or the "media-col" [PWG5100.3] member attribute is used to indicate the media that the Printer MUST use for the specified "proof-print-copies" of the Proof Job. The member attributes are the same as those for the "media-col" attribute defined in [PWG5100.3] and in section 11.5 of this specification.

The Client MUST supply either the "media" or the "media-col" member attribute, but NOT both. If the Client supplies such a malformed request by supplying neither or both, the Printer MUST (depending on implementation) either (1) reject the request and return the 'client-error-bad-request' status code [STD92] or (2) use either the "media" or the "media-

Page 127 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3733743255325632573258

32593260326132623263

3264

3265

3266

326732683269

3270

3271327232733274

3275

3276327732783279

3280328132823283

375

Page 128: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

col" member attribute, independent of the value of the "ipp-attribute-fidelity" attribute supplied by the client.

Since this "media" member attribute has the same name as the "media" Job Template attribute [STD92], the "media-supported" (1setOf (type2 keyword | name(MAX))) Printer attribute identifies the values of this "media" member attribute (as well as the values of the "media" Job Template attribute) that the Printer supports, i.e., the names of the supported media. A value that is provided for the "media" member attribute in the collection would have the same effect as if the Job were submitted with that value as the value of the "media" Job Template attribute.

Since this "media-col" member attribute has the same name as the "media-col" Job Template attribute [PWG5100.3], the "media-col-supported" Printer attribute identifies the keyword names of the member attributes supported in this "media-col" member attribute (as well as the keyword names of the "media-col" Job Template attribute), i.e., the names of the member attributes that the Printer supports.

[6.8] Printer Description Attributes

[6.8.1] feed-orientation-default (type2 keyword)

This attribute specifies the default value of "feed-orientation" when not supplied in a request. This default depends upon the media-size being requested and is Printer implementation dependent upon how the default value is calculated.

[6.8.2] feed-orientation-supported (1setOf (type2 keyword))

This attribute specifies which values of "feed-orientation" that the Printer supports.

[6.8.3] font-name-requested-default (name(MAX))

This attribute specifies the default value of "font-name-requested" when not supplied in a request.

[6.8.4] font-name-requested-supported (1setOf name(MAX))

This attribute specifies which values the Printer supports for the "font-name-requested" Job Template attribute.

[6.8.5] font-size-requested-default (integer (1:MAX))

This attribute specifies the default value of "font-size-requested" when not supplied in a request.

Page 128 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

37637732843285

3286328732883289329032913292

32933294329532963297

3298

3299

330033013302

3303

3304

3305

33063307

3308

33093310

3311

33123313

378

Page 129: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[6.8.6] font-size-requested-supported (1setOf rangeOfInteger (1:MAX))

This attribute specifies which values or ranges of values the Printer supports for the "font-size-requested" Job Template attribute.

[6.8.7] job-creation-attributes-supported (1setOf type2 keyword)

This attribute enables a Client to query the Printer for the set of Job attributes that can be set by the Client during a Create-Job, Print-Job, Validate-Job, or Print-URI operation.

This attribute allows the Client to dynamically determine all the Job attributes that it can specify at the time of Job creation.

The list of attribute names in “job-creation-attributes-supported” MUST include:

All Job Template attributes that may be supplied by the Client at the Job level

All operation attributes that are written to the Job object as Job Description attributes (e.g., "job-name") at the Job level

The list of attribute names in “job-creation-attributes-supported” MUST NOT include:

Collection member attribute names

Note: The Client can determine which member attributes of “xxx” collection attributes are supported by querying the “xxx-supported” Printer attribute (see [RFC3382]).

Operation attributes that are not Job attributes

Note: The only mechanism previously available for a Client to query the Printer for supported attributes is to specify the ‘job-template’ group value on a Get-Printer-Attributes operation. This has been problematic because: 1) it returns the entire list of “xxx-default” and “xxx-supported” attributes and values which will be excessively burdensome for production printing systems with extensive functionality, and 2) it does not include operation attributes that are written to the Job object as Job description attributes (i.e., "job-name").

Note: See also the description of the Get-Printer-Attributes operation [STD92] and the distinction between "xxx-default", "xxx-ready", and "xxx-supported" attributes when "xxx" is any Job Template attribute that a Client can supply as a top-level attribute vs. (see [RFC3382]) when "xxx" is a member attribute for a Job Template 'collection' attribute (e.g. The "media-color-supported" Printer attribute lists the values of the “media-color” member attribute of the “media-col” collection attribute, but does not belong to the 'job-template' attribute group, or to the ‘printer-description’ attribute group).

Page 129 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3793803314

33153316

3317

33183319

33203321

3322

3323

33243325

3326

3327

332833293330

3331

3332333333343335333633373338

33393340334133423343334433453346

381

Smith Kennedy, 09/04/18,
???
Page 130: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[6.8.8] job-ids-supported (boolean)

This attribute indicates whether the Printer supports the “job-ids” Operation in the following existing operations: Purge-Jobs (if supported) and Get-Jobs. A Printer MUST support the "job-ids-supported " Printer Description attribute in order to claim support of this Job and Printer Extensions - Set 2 Specification.

[6.9] job-delay-output-until-default (type2 keyword | name(MAX))

This attribute specifies the default value supplied by the Printer if the Client omits the ‘job-delay-output-until” Job Template attribute.

[6.9.1] job-delay-output-until-supported (1setOf type2 keyword | name(MAX))

This attribute specifies the values supported by the Printer for the "job-delay-output-until" Job Template attribute. See the values defined for the "job-hold-until" Job Template attribute [STD92].

[6.9.2] job-delay-output-until-time-supported (rangeOfInteger(0:MAX))

This attribute specifies the span of relative amount of time in seconds into the future that the Printer supports keeping the output from being produced. The Printer MUST use the time range to validate a Job that is submitted with a “job-delay-output-until-time” attribute.

[6.9.3] job-hold-until-time-supported (rangeOfInteger(0:MAX))

This attribute specifies the span of relative amount of time in seconds into the future that the Printer supports keeping the submitted Job in the 'pending-held' state. The Printer MUST use the time range to validate a Job that is submitted with a "job-hold-until-time" attribute.

[6.10] job-password-supported (integer(0:255))

The "job-password-supported" Printer Description attribute indicates the maximum length that the Printer will accept for the unencrypted password which the Client will encrypt as the value of the "job-password" Operation Attribute. A conforming Printer MUST be able to accept 255 octets without truncation. However, a Printer MAY be implemented as a gateway to another print system that cannot accept the full 255-octet range, in which case the Client MUST NOT allow an unencrypted password greater than the length specified by this attribute.

[6.10.1] job-password-encryption-supported (1setOf (type2 keyword | name(MAX)))

This attribute specifies which encryption methods the Printer supports for Secure Print.

Page 130 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3823833347

3348334933503351

3352

33533354

3355

335633573358

3359

336033613362

3363

3364336533663367

3368

3369337033713372337333743375

3376

3377

384

Page 131: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

If the "job-password" operation attribute is supported, then this attribute MUST be supported. Standard keyword values are:

Keyword Description

'none' The "job-password" attribute value is passed in the clear. No encryption has been applied. This value might also be used when the entire Operation is sent over a secure connection.

'md2' The encryption method uses the MD2 hash algorithm defined in RFC 1319. [1]

'md4' The encryption method uses the MD4 hash algorithm defined in RFC 1320. [1]

'md5' The encryption method uses the MD5 hash algorithm defined in RFC 1321. [1]

'sha' The encryption method uses the Secure Hash Algorithm 1 defined by the National Institute of Standards and Technology. [1]

'sha2-224' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 224 bits.

'sha2-256' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 256 bits.

'sha2-384' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 384 bits.

'sha2-512' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits.

'sha2-512_224' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 224 bits.

'sha2-512_256' The encryption method uses the Secure Hash Algorithm 2 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 256 bits.

'sha3-224' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology,

Page 131 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

38538633783379

387

Page 132: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

with an output size of 224 bits.

'sha3-256' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 256 bits.

'sha3-384' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 384 bits.

'sha3-512' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits.

'sha3-512_224' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 224 bits.

'sha3-512_256' The encryption method uses the Secure Hash Algorithm 3 defined by the National Institute of Standards and Technology, with an output size of 512 bits, truncated to 256 bits.

'shake-128' The encryption method uses the SHAKE128 method defined by the National Institute of Standards and Technology, with an output size of 128 bits.

'shake-256' The encryption method uses the SHAKE256 method defined by the National Institute of Standards and Technology, with an output size of 256 bits.

[1] - Deprecated

[6.10.2] job-phone-number-default (uri)

This attribute specifies the Printer's default value for "job-phone-number" that the Printer will apply to a Job if the Client omits the ‘job-phone-number” Job Template attribute.

[6.11] job-phone-number-supported (boolean)

This attribute, when supported and its value is 'true', indicates that the Printer accepts the “job-phone-number” attribute.

Page 132 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

388389

3380

3381

33823383

3384

33853386

390

Page 133: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[6.11.1] job-recipient-name-default (name(MAX))

This attribute specifies the Printer's default value for "job-recipient-name" that the Printer will apply to a Job if the Client omits the ‘job-recipient-name” Job Template attribute.

[6.12] job-recipient-name-supported (boolean)

A true value indicates that the Printer accepts the “job-recipient-name” attribute.

[6.13] job-save-disposition-default (collection)

The "job-save-disposition-default (collection)" attribute specifies the “job-save-disposition” member attributes and values that the Printer will provide, if any, if the Client omits the "job-save-disposition" collection attribute. A Printer MUST support the same member attributes for these default attributes as it supports for the corresponding Job Template attributes (see Table 7).

The "save-info" (1setOf collection) member attribute of the “job-save-disposition-default” Printer attribute specifies the save information member attributes and values that the Printer will provide, if any, if the Client omits the “job-save-disposition” Job Template attribute entirely. A Printer MUST support the same member attributes for these default attributes as it supports for the corresponding Job Template attributes (see Table 7 and Table 8), with the single exception, that the “save-name” member attribute MUST NOT be supported (since the Printer MUST use the “job-name” attribute to generate the default “save-name”).

If the Client supplies the “job-save-disposition” Job Template attribute, but omits the “save-info” member attribute, the Printer uses its “save-location-default” and “save-disposition-default” Printer attributes and the job’s “job-name” attribute to create the job’s “save-info” member attribute, rather than using the “save-info” member attribute of the Printer’s “job-save-disposition-default” attribute (see "save-info" description above).

[6.14] job-save-disposition-supported (1setOf type2 keyword)

The "job-save-disposition-supported (1setOf type2 keyword)" attribute identifies the names of the member attributes supported in the "job-save-disposition" collection attribute, i.e., the names of the member attributes in Table 7 that the Printer supports. The RECOMMENDED way for a Client to determine whether or not a Printer support saving jobs, is to query this Printer attribute.

[6.15] job-spooling-supported (type2 keyword)

This attribute indicates whether or not jobs are spooled before the document data is interpreted (RIPped). In other words, this attribute indicates when jobs are processed by

Page 133 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3913923387

33883389

3390

3391

3392

33933394339533963397

33983399340034013402340334043405

34063407340834093410

3411

34123413341434153416

3417

34183419

393

Page 134: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

the Printer with respect to when the Printer receives and returns responses to Job Creation requests (i.e., Print-Job, Print-URI), receives and returns responses to Document Creation requests (i.e., Send-Document and Send-Uri requests) and "receives" or "fetches" such document data.

The value of this attribute returned in a Get-Printer-Attributes response MAY depend on the "document-format" attribute supplied in the Get-Printer-Attributes request [STD92]. If the Printer does not support this attribute, then the spooling behavior is implementation dependent.

The Get-Printer-Supported-Values operation [RFC3380] returns a '1setOf type2 keyword' so that all possible values that the implementation is capable of supporting are indicated.

The standard keyword values are:

Keyword Description

'spool' The Printer starts processing a Job until the Printer has (1) accepted and responded to the Job Creation request and all Document Creation requests (for a multi-document job) and (2) has "received" or "fetched" all document data for the job, i.e., spool rather than stream.

'stream' The Printer starts processing a Job (1) before the Printer has accepted all Document Creation requests and (2) before the Printer has "received" or "fetched" all document data, i.e., stream rather than spool.

'automatic' The Printer chooses whether to process a Job before or after the Printer has accepted all Document Creation requests and has "received" or "fetched" all document data, i.e., the Printer MAY spool and/or stream depending on policy and other factors, such as the document format, including a combination of spooling and streaming.

[6.16] max-save-info-supported (integer(1:MAX))

The "max-save-info-supported" Printer Description attribute specifies the maximum number of “save-info” member attribute collections that a Printer can accept in a Job request. If the number of “save-info” member attribute collections supplied by a Client in a Job Creation operation exceeds the value of this attribute, the Printer MUST accept or reject the request as described in the "save-info" description in the "job-save-disposition" description (see description in section 7.9). If the Printer only supports one “save-info” collection, then the Printer MAY either (1) support this attribute with a value of ‘1’ or (2) omit support of this attribute. The RECOMMENDED way for a Client to determine whether

Page 134 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

3943953420342134223423

3424342534263427

34283429

3430

3431

34323433343434353436343734383439

396

Page 135: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

or not a Printer supports saving jobs, is to query the “job-save-disposition-supported” Printer attribute (see description in section 7.9.3).

[6.17] media-col-database (1setOf collection)

The OPTIONAL "media-col-database" Printer Description attribute enables a Client to query the set of pre-defined media collections available in the printer’s media database, if the “media-col” attribute is supported. This attribute is identical in format and syntax to “media-col-ready” but returns the entire set of pre-defined media collections known by the Printer instead of just the media collections currently in the Printer trays. If this attribute is supported, the members of the collections correspond to the supported members of the “media-col” attribute.

The Printer MUST NOT return this attribute in the response to the Get-Printer-Attributes operation when the Client requested the 'all' or 'printer-description' group names. Therefore, the Client must request this attribute explicitly in order to get the media collections. The reason for this recommendation is that the amount of data returned in the response would be very large when combined with all of the other attributes.

[6.18] pdl-init-file-location-supported (1setOf uri)

The "pdl-init-file-location-supported (1setOf uri)" Printer attribute specifies the path(s) to the directory (directories) of the supported initialization file(s) that the Client MAY ask the Printer to send to its PDL interpreter prior to processing the document.

[6.19] pdl-init-file-name-supported (1setOf name(MAX))

The "pdl-init-file-name-supported (1setOf name(MAX))" Printer attribute specifies the name(s) of the supported initialization file(s) that the Client MAY ask the Printer to send to its PDL interpreter prior to processing the document.

[6.20] pdl-init-file-name-subdirectory-supported (boolean)

The “pdl-init-file-name-subdirectory-supported” (boolean) Printer Description attribute indicates whether or not the Printer will accept a FORWARD SLASH (“/”) character in the value of the “pdl-init-file-name” member attribute. If the value is ‘false’ and the Client supplies a FORWARD-SLASH (“/”) in the “save-name” value, the Printer MUST reject the request and return the ‘client-error-attributes-or-values-not-supported’.

[6.21] pdl-init-file-default (1setOfcollection)

The "pdl-init-file-default" Printer Description attribute collection specifies the default initialization file (or list of files) and related information that the Printer will use if the Client

Page 135 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

39739834403441

3442

3443344434453446344734483449

34503451345234533454

3455

345634573458

3459

346034613462

3463

34643465346634673468

3469

34703471

399

Page 136: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

omits the "pdl-init-file" Job Template attribute in a Job Creation operation. The member attributes are defined in Table 11. A Printer MUST support the same member attributes and values for this default collection attribute as it supports for the corresponding "pdl-init-file" Job Template attribute.

A "pdl-init-file-name" within "pdl-init-file-default" collection with a “0 length value” will be used to indicate that Printer has no default initialization file (see description of “none” values in Section 2.7 in [PWG5100.3]).

[6.22] pdl-init-file-supported (1setOf type2 keyword)

The "pdl-init-file-supported" Printer Description attribute identifies the keyword names of the member attributes supported in the "pdl-init-file" collection Job Template attribute, i.e., the keyword names of the member attributes in Table 11 that the Printer supports.

[6.23] pdl-init-file-entry-supported (1setOf name(MAX))

The "pdl-init-file-entry-supported (1setOf name(MAX))" Printer attribute specifies the name(s) of the supported initialization file(s) that the Client MAY ask the Printer to send to its PDL interpreter prior to processing the document.

[6.24] printer-detailed-status-messages (1setOf text(MAX))

The OPTIONAL "printer-detailed-status-messages" Printer Description attribute specifies additional detailed and technical information about the printer, in the same way “job-detailed-status-messages” provides additional information about a job. Printer-specific information such as fault and warning messages can be captured, and the 1setOf syntax supports multiple messages. The Printer NEED NOT localize the message(s), since they are intended for use by the system administrator or other experienced technical persons. Clients MUST NOT attempt to parse the value(s) of this attribute.

[6.25] proof-print-default (collection)

The "proof-print-default" (collection) Printer Description attribute specifies the default value of "proof-print" MUST use when not supplied in a request. A Printer MUST support the same member attributes for this default collection as it supports for the corresponding "proof-print" Job Template attribute.

[6.26] proof-print-supported (1setOf type2 keyword)

The "proof-print-supported" (1setOf (type2 keyword)) Printer Description attribute specifies which member attributes of "proof-print" that the Printer supports.

Page 136 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4004013472347334743475

347634773478

3479

348034813482

3483

348434853486

3487

3488348934903491349234933494

3495

3496349734983499

3500

35013502

402

Smith Kennedy, 08/27/18,
???
Page 137: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[6.27] save-disposition-supported (1setOf type2 keyword)

The “save-disposition-supported (1setOf type2 keyword)” Printer attribute defines the save dispositions supported by the Printer for the “save-disposition” member attribute (see standard keyword values in above table).

[6.28] save-info-supported (1setOf type2 keyword)

The "save-info-supported (1setOf type2 keyword)" attribute identifies the names of the member attributes supported in the "save-info" collection attribute, i.e., the names of the member attributes in Table 8 that the Printer supports.

[6.29] save-location-default (uri)

The “save-location-default (uri)” Printer attribute indicates the value that the Printer supplies, if the Client omits the “save-location” member attribute from the “save-info” member attribute.

[6.30] save-location-supported (1setOf uri)

The “save-location-supported (1setOf uri)” Printer attribute defines a list of URI values supported by the Printer object for the "save-location" member attribute (see above description). The Client MUST supply a value of the "save-location" member attribute that completely matches one of these values. Note: The administrator can configure the “save-location-supported” to have separate directories for individuals, groups, projects, or MAY just have one directory for all saved jobs. Whether or not access control is applied to these directories is IMPLEMENTATION DEPENDENT.

[6.30.1] save-name-supported (boolean)

The “save-name-supported (boolean)” attribute indicates support for the OPTIONAL "save-name" member attribute of the "save-info" member attribute. Note: The means to query the Printer to see what saved jobs it has is a potential future extension.

[6.31] save-name-subdirectory-supported (boolean)

The “save-name-subdirectory-supported” (boolean) Printer Description attribute indicates whether the Printer supports a FORWARD SLASH (“/”) character in the “save-name” (name(MAX)) member attribute. If the value is ‘false’ and the Client supplies a FORWARD-SLASH (“/”) in the “save-name” value, the Printer MUST reject the request and return the ‘client-error-attributes-or-values-not-supported’.

Page 137 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

403404

3503

350435053506

3507

350835093510

3511

351235133514

3515

3516351735183519352035213522

3523

352435253526

3527

35283529353035313532

405

Page 138: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[6.32] save-document-format-default (mimeMediaType)

If the Client supplies the “save-info” member attribute but omits the “save-document-format” member attribute (see above description), the Printer MUST use the value of its “save-document-format-default” (mimeMediaType) attribute.

[6.33] save-document-format-supported (1setOf mimeMediaType)

The "save-document-format-supported" (1setOf mimeMediaType) attribute specifies the document formats which a Printer supports for saving jobs.

If a Printer supports this Job Save & Reprint Feature, the Printer SHOULD be able to Reprint using the Resubmit-Job operation (see Section 4.3.1.2) for all the formats in which it is capable of saving jobs, i.e., the mimeMediaType values of the Printer’s “document-format-supported” Printer Description attribute SHOULD be a superset of the values of the Printer’s “save-document-format-supported” attribute. For example, if a Printer supports the ‘application/X-single-page-tiff’ format for saving jobs, it SHOULD also accept and support a Resubmit-Job operation to reprint that job.

[6.33.1] which-jobs-supported (1setOf type2 keyword)

The "which-jobs-supported" Printer Description attribute enables a Client to query the Printer for the set of values that can be supplied one at a time as a value of the “which-jobs” operation attribute of the Get-Jobs operation. Current allowed values for “which-jobs” are ‘completed’ and ‘not-completed’, and the “which-jobs” extensions described above extend the values to include keywords corresponding to the symbolic names of all IPP “job-state” enum values and to include Proof Print Jobs and Saved Jobs. The Printer MUST support the "which-jobs-supported" Printer Description attribute if it supports the "proof-print" and/or "job-save-disposition" Job Template attributes. See section 11.2 for the values).

If this attribute is supported, then the Printer MUST support both ‘completed’ and ‘not-completed’ as valid values.

[7.] New OperationsThis section defines the following IPP REQUIRED operations:

[1.] Cancel-Jobs - allows the operator or administrator for the Printer to cancel selected or all Not Completed Jobs.

[2.] Cancel-My-Jobs - allows a user to cancel selected or all his/her Not Completed Jobs.

Page 138 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

406407

3533

353435353536

3537

35383539

3540354135423543354435453546

3547

354835493550355135523553355435553556

35573558

3559

3560

35613562

35633564

408

Page 139: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[3.] Close-Job - allows a Client to close a multi-document Job without supplying any additional documents.

[4.] Resubmit-Job - allows a user to request the Printer to process a copy of a Retained Job with optional additional or modified attributes.

[5.] Reprocess-Job - allows a user to re-process an exact copy of a Retained Job. This operation is defined in [RFC3998]

[7.1] Cancel-Jobs Operation

The REQUIRED Cancel-Jobs operation allows the Operator or Administrator for the Printer to cancel a list of Not Completed Jobs or all Not Completed Jobs on the Printer. This operation works like the Cancel-Job operation [STD92], except that it works on a number of Jobs at once. If the Printer cannot cancel all of the requested Jobs successfully, it MUST NOT cancel any and MUST return an error code along with the list of offending Jobs' "job-id" values. A Client MUST be able to supply and a Printer MUST support this operation in order to claim support of this IPP Job and Printer Extensions – Set 2 v2.0 Specification, respectively.

This operation allows a Client to cancel one or more Print Jobs from the time the Job is created up to the time it is completed, canceled, or aborted. Since a specified Job might already be printing by the time a Cancel-Jobs operation is received, some media sheet pages might be printed before the Job is actually terminated.

The Client specifies the set of candidate jobs to be canceled by supplying and/or omitting the “job-ids” (1setOf integer(1:MAX)) (see section 5.1.1 below), First, the Printer MUST check the access rights of the requesting user to endure that it is the Operator or Administrator of the Printer (see Access Rights below). If this check succeeds, then (and only then) the Printer MUST accept or reject the request based on the current state of each of the candidate jobs and transition each Job to the indicated new state as shown in Table 3 (copied verbatim from [RFC2911], including the Rule 1 and 2 for the convenience of the reader). If any of the candidate jobs cannot be canceled, the Printer MUST NOT cancel any jobs and MUST return the indicated error status code along with the list of offending “job-id” values in the “job-ids” operation attribute (see section 5.1.2).

Table 29 - Legal Job state transitions for Cancel-Jobs and Cancel-My-Jobs Operations

Current "job-state" New "job-state" IPP object's response status code and action

'pending' 'cancelled' 'successful-ok'

'pending-held' 'cancelled' 'successful-ok'

'processing' 'cancelled' 'successful-ok'

Page 139 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

40941035653566

35673568

35693570

3571

35723573357435753576357735783579

3580358135823583

3584358535863587358835893590359135923593

3594

411

Smith Kennedy, 09/04/18,
IMHO Table 3 should be removed so that it doesn't violate the DRY principle
Page 140: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'processing' 'processing' 'successful-ok' See Rule 1

'processing-stopped' 'cancelled' 'successful-ok'

'processing-stopped' 'processing-stopped' 'successful-ok' See Rule 1

'completed' 'completed' 'successful-ok-ignored-or-substituted-attributes'

'cancelled 'cancelled' 'successful-ok-ignored-or-substituted-attributes'

'aborted' 'aborted' 'successful-ok-ignored-or-substituted-attributes'

Rule 1: If the implementation requires some measurable time to cancel a Job in the 'processing' or 'processing-stopped' Job states, the Job MUST add the 'processing-to-stop-point' value to its "job-state-reasons" attribute and then transition itself to the 'canceled' state when processing ceases [STD92].

[7.1.1] Access Rights

The authenticated user [STD92] performing this operation MUST be an operator or administrator of the Printer object [STD92]. Otherwise, Printer MUST reject the operation without canceling any jobs, MUST return 'client-error-not-authorized' status code for its response, and MUST NOT return the "job-ids" operation attribute in its response.

[7.1.2] Cancel-Jobs Request

The following groups of attributes are part of the Cancel-Jobs Request:

Group 1: Operation Attributes

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes [STD92].

Target:

The "printer-uri" (uri) operation attribute MUST be supplied by the Client which defines the target for this operation [STD92]. The Client MUST NOT supply and the Printer MUST NOT support the “job-uri” (uri) operation attribute for this operation.

The “job-ids” (1setOf integer(1:MAX)) MAY be supplied by the Client in the request to explicitly indicate the “job-id” values of the candidate jobs to be canceled. If the "job-ids" attribute is not supplied, the Printer MUST consider all jobs that are cancelable according to Table 3 above as the candidate jobs and cancel them all. The Client MUST be able to supply this attribute in order

Page 140 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

412413

3595359635973598

3599

3600360136023603

3604

3605

3606

3607

3608

3609

3610361136123613

36143615361636173618

414

Smith Kennedy, 09/04/18,
The "Access Rights" little blocks should be their own sub-sections
Page 141: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

to claim conformance to this operation. The Printer MUST support this attribute with a list of “job-id” values.

"requesting-user-name" (name(MAX)):

The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client [STD92].

"message" (text(127)):

The Client OPTIONALLY supplies this attribute. The Printer object OPTIONALLY supports this attribute. It is a message to the operator. This "message" attribute is not the same as the "job-message-from-operator" attribute. That attribute is used to report a message from the operator to the end user that queries that attribute. This "message" operation attribute is used to send a message from the Client to the operator along with the operation request. It is an implementation decision of how or where to display this message to the operator (if at all).

[7.1.3] Cancel-Jobs Response

The following sets of attributes are part of the Cancel-Jobs 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 [STD92].

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes [STD92].

Group 2: Unsupported Attributes

If the Client had supplied the "job-ids" operation attribute in the request, and one or more of those specified jobs were in the 'completed', 'canceled'. or 'aborted' states (see Table 3 above), the Printer MUST (1) accept the request, (2) return the 'successful-ok-ignored-or-substituted-attributes' status code, (3) return the “job-ids” operation attribute with the “job-id” values of the jobs that could not be canceled [STD92].

Page 141 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

41541636193620

3621

36223623

3624

36253626362736283629363036313632

3633

3634

3635

3636

363736383639

3640

3641

3642

364336443645364636473648

417

Page 142: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[7.2] Cancel-My-Jobs operation

The REQUIRED Cancel-My-Jobs operation permits a user to cancel a list of their own Not Completed jobs or all their own Not Completed jobs on the Printer. This operation works like the Cancel-Job operation [STD92], except that it works on a number of jobs at once. If the Printer cannot cancel all of the requested jobs successfully, it MUST NOT cancel any and MUST return an error code along with the list of offending job-ids. A Client MUST be able to supply and a Printer MUST support this operation in order to claim support of this Job and Printer Extensions - Set 2 Specification, respectively.

This operation allows a Client to cancel one or more Print Jobs from the time the Job is created up to the time it is completed, canceled, or aborted. Since a specified Job might already be printing by the time a Cancel-My-Jobs operation is received, some media sheet pages might be printed before the Job is actually terminated.

The Client specifies the set of candidate jobs to be canceled by supplying and/or omitting the “job-ids” (1setOf integer(1:MAX)) (see section 5.2.1 below), First, the Printer MUST check the access rights of the requesting user against all of the candidate jobs (see Access Rights below). If any of the candidate jobs are not owned by the requesting user, the Printer MUST NOT cancel any jobs and MUST return the 'client-error-not-authorized' error status code along with the list of offending “job-id” values in the “job-ids” operation attribute (see section 5.1.2). If this check succeeds, then (and only then) the Printer MUST accept or reject the request based on the current state of each of the candidate jobs and transition each Job to the indicated new state as shown in Table 3 above. If any of the candidate jobs cannot be canceled, the Printer MUST NOT cancel any jobs and MUST return the indicated error status code along with the list of offending “job-id” values in the “job-ids” operation attribute (see section 5.1.2).

[7.2.1] Access Rights

If the Client supplied the "job-ids" attribute, the authenticated user [STD92] performing this operation MUST be the Job owner of all the candidate jobs. If any of the supplied "job-ids" specify jobs that do not belong to the requesting user, the IPP object MUST (1) reject the operation without canceling any jobs, (2) return: 'client-error-not-authorized', and (3) MUST return the "job-ids" operation attribute with any specified jobs that are not owned by the requesting user (see section 5.2.2 below).

[7.2.2] Cancel-My-Jobs Request

The following groups of attributes are part of the Cancel-My-Jobs Request:

Group 1: Operation Attributes

Natural Language and Character Set:

Page 142 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

418419

3649

3650365136523653365436553656

3657365836593660

366136623663366436653666366736683669367036713672

3673

367436753676367736783679

3680

3681

3682

3683

420

Page 143: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1.

Target:

The "printer-uri" (uri) operation attribute MUST be supplied by the Client which defines the target for this operation [STD92]. The Client MUST NOT supply and the Printer MUST NOT support the “job-uri” (uri) operation attribute for this operation.

The “job-ids” (1setOf integer(1:MAX)) MAY be supplied by the Client in the request to explicitly indicate the “job-id” values of the candidate jobs to be canceled. If the "job-ids" attribute is not supplied, the Printer MUST consider all jobs that are both (1) owned by the requesting user AND (2) are cancelable according to Table 3 above as the candidate jobs and cancel them all. The Client MUST be able to supply this attribute in order to claim conformance to this operation. The Printer MUST support this attribute with a list of “job-id” values.

"requesting-user-name" (name(MAX)):

The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client [STD92].

"message" (text(127)):

The Client OPTIONALLY supplies this attribute. The Printer object OPTIONALLY supports this attribute. It is a message to the operator. This "message" attribute is not the same as the "job-message-from-operator" attribute. That attribute is used to report a message from the operator to the end user that queries that attribute. This "message" operation attribute is used to send a message from the Client to the operator along with the operation request. It is an implementation decision of how or where to display this message to the operator (if at all).

[7.2.3] Cancel-My-Jobs Response

The following sets of attributes are part of the Cancel-My-Jobs 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 [STD92].

Page 143 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

42142236843685

3686

3687368836893690

36913692369336943695369636973698

3699

37003701

3702

37033704370537063707370837093710

3711

3712

3713

3714

371537163717

423

Page 144: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes [STD92]

Group 2: Unsupported Attributes

If the Client had supplied the "job-ids" operation attribute in the request, and one or more of those specified jobs failed the Job status check defined in Table 3 above, the Printer MUST (1) accept the request, (2) return the 'successful-ok-ignored-or-substituted-attributes' status code, (3) return the “job-ids” operation attribute with the “job-id” values of the jobs that could not be canceled [STD92].

[7.3] Close-Job Operation

The REQUIRED Close-Job operation allows a Client to close a multi-document job, i.e., a Job that was opened with a Create-Job operation [STD92] followed by zero or more Send-Document and/or Send-URI operations [STD92]. It is semantically similar to a Send-Document operation with the "last-document" operation attribute supplied with a 'true' value with no document data (except that with the Close-Job operation the Printer MUST NOT add an additional document object) [STD92].

A Client SHOULD check to see if the Printer supports the Close-Job operation by querying the values of the "operations-supported" Printer Description attribute.

[7.3.1] Access Rights

The authenticated user [STD92] performing this operation must either be the Job owner (as determined in the Create-Job operation) or an operator or administrator of the Printer object [STD92]. Otherwise, the IPP object MUST reject the operation and return: 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate.

[7.3.2] Close-Job Request

The following attributes are part of the Close-Job Request:

Group 1: Operation Attributes

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes [STD92].

Target:

Page 144 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4244253718

3719

3720

372137223723372437253726

3727

372837293730373137323733

37343735

3736

37373738373937403741

3742

3743

3744

3745

3746

3747

426

Page 145: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

The "printer-uri" (uri) plus "job-id" (integer(1:MAX)) which define the target for this operation [STD92]. The Client MUST NOT supply and the Printer MUST NOT support the “job-uri” (uri) operation attribute for this operation.

"requesting-user-name" (name(MAX)):

The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client [STD92].

[7.3.3] Close-Job Response

The following attributes are part of the Close-Job 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 [STD92].

Natural Language and Character Set:

The "attributes-charset" and "attributes-natural-language" attributes [STD92].

Group 2: Unsupported Attributes

See [RFC8011] section 4.1.7 for details on returning Unsupported Attributes.

Group 3: Job Object Attributes

This is the same set of attributes as described in the Print-Job response [STD92].

[7.4] Resubmit-Job Operation

The REQUIRED Resubmit-Job operation allows a Client to start a copy of a Retained Job that is retained in the queue after processing has completed [STD92], supply changes to attributes that were supplied in the original jobs and to supply additional attributes for that copy before starting. A Client MUST be able to supply and a Printer MUST support this operation in order to claim support of this IPP Job and Printer Extensions – Set 2 v2.0, respectively.

The new Job's state is set to 'pending' or 'pending-held' and restarts at the beginning on the same IPP Printer object. If any of the Documents in the Job were passed by reference (Print-URI or Send-URI), the Printer MUST re-fetch the data, since the semantics of Resubmit-Job are to repeat all Job processing. The Job Description attributes that

Page 145 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

427428374837493750

3751

37523753

3754

3755

3756

3757

375837593760

3761

3762

3763

3764

3765

3766

3767

376837693770377137723773

3774377537763777

429

Smith Kennedy, 09/04/18,
Printer must re-fetch? Or Job must re-fetch?
Page 146: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

accumulate Job progress, such as "job-impressions-completed", "job-media-sheets-completed", and "job-k-octets-processed", MUST be reset to 0 so that they give an accurate record of the new job. The Job object MUST use new values for the "job-uri" and "job-id" attribute values as assigned by the Printer.

If the Retained Job already contains the same operation or Job Template attribute with a different value, the value supplied in the Resubmit-Job operation MUST override (if supported by the Printer). If the Retained Job does not contain such an Operation or Job Template attribute, the value supplied with the Resubmit-Job operation MUST apply (if supported by the Printer). When reprinting a Saved Job, the Printer MUST NOT copy the “job-save-disposition” attribute to the copy; otherwise, the Job would be saved again. Only if the Client supplies the “job-save-disposition” attribute in the Resubmit-Job operation will the Job be saved again. Similarly, when reprinting a Proof Print Job, the Printer MUST NOT copy the “proof-print” attribute to the Job copy; otherwise, the Job would be proofed again. Only if the Client supplies the “proof-print” attribute in the Resubmit-Job operation will the Job be proofed again.

The Printer MUST accept or reject the Resubmit-Job request based on the original Job's current state as follows:

Table 30 - State Transition Table for the Resubmit-Job operation

"job-state" IPP object's response status code and action

'pending' 'client-error-not-possible'

'pending-held' 'client-error-not-possible'

'processing' 'client-error-not-possible'

'processing-stopped' 'client-error-not-possible'

'completed' 'successful-ok' - A copy of the Job is started over.

'completed' 'client-error-not-possible' - see Rule 1

'cancelled' 'successful-ok' - A copy of the Job is started over.

'cancelled' 'client-error-not-possible' - see Rule 1

'aborted' 'successful-ok' - A copy of the Job is started over.The new copy of the Job will abort again, if the abort condition is still true.

'aborted' 'client-error-not-possible' - see Rule 1

Rule 1: If the Job Retention Period has expired for the Job in this state, then the IPP object rejects the operation [STD92].

Page 146 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4304313778377937803781

37823783378437853786378737883789379037913792

37933794

3795

37963797

432

Smith Kennedy, 09/04/18,
which one?
Smith Kennedy, 09/04/18,
seems unnecessary - if they aren't supported by the Printer or the Job then how would the already be there?
Page 147: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Note: In order to prevent a user from inadvertently restarting a Job in the middle, the Resubmit-Job request is rejected when the Job is in the 'processing' or 'processing-stopped' states. If in the future an operation is needed to hold or restart jobs while in these states, it will be added as an additional operation, rather than overloading the Resubmit-Job operation, so that it is clear that the user intended that the current Job not be completed.

[7.4.1] Access Rights

The authenticated user [STD92] performing this operation must either be the Job owner or an operator or administrator of the Printer object [STD92]. Otherwise, the IPP object MUST reject the operation and return: 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate.

[7.4.2] Resubmit-Job Request

The groups and attributes are the same as for a Print-Job request [STD92], except that the Client MUST NOT supply the “document-format” attribute and MUST NOT append document data to the request. If the Client does supply “document-format”, the Printer MUST return: ‘client-error-bad-request’. The following additional Group 1 Operation attributes are defined:

Target:

The "printer-uri" (uri) plus "job-id" (integer(1:MAX)) which define the target for this operation [STD92]. The Client MUST NOT supply and the Printer MUST NOT support the “job-uri” (uri) operation attribute for this operation.

[7.4.3] Resubmit-Job Response

The groups and attributes are the same as for a Cancel-Job response [STD92].

[7.5] Reprocess-Job operation

The REQUIRED Reprocess-Job operation allows a user to re-process an exact copy of a Retained Job. This operation is defined in [RFC3998][RFC3998].

[8.] New Values for Existing AttributesThis section defines additional values for existing attributes. The existing text for those attributes is not reproduced here in order to prevent deviations.

Page 147 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

433434379837993800380138023803

3804

3805380638073808

3809

38103811381238133814

3815

381638173818

3819

3820

3821

38223823

3824

38253826

435

Page 148: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[8.1] pdl-override-supported (type2 keyword)

The following additional OPTIONAL value is defined for the “pdl-override-supported” (type2 keyword) Printer Description attribute [STD92]: 'guaranteed': This value indicates that the Printer object:

[1.] Guarantees that the IPP Job Template attribute values take precedence over instructions of any form embedded anywhere in the document data.

[2.] Guarantees that no PDL instruction is performed that does not correspond to a current value in the corresponding "xxx-supported" Printer attribute. In such a situation, the Printer MAY (a) abort the job, (b) stop the Printer, (c) hold the job, or (d) substitute on the fly with one of the current values of its "xxx-supported" attribute. This choice MAY be fixed by the implementation or configurable by the system administrator and MAY depend on the attribute.

[3.] Provides the "queue override" semantics as described below, if the "xxx-supported" Printer attribute is configured with only a single value.

See [STD92] for a full description of how this attribute interacts with and affects other IPP attributes, especially the "ipp-attribute-fidelity" attribute.

[8.1.1] Additional semantics for 'guaranteed' value of "pdl-override-supported" attribute

If a Printer's "pdl-override-supported" is 'guaranteed', then the Printer MUST follow these additional semantics for Job Creation requests and Get-Job-Attributes or Get-Jobs responses.

Whether or not the Client supplied the "xxx" Job attribute in the Job Creation operation, the Printer MUST accept or reject the Job based on "ipp-attribute-fidelity" as usual. However, if "ipp-attribute-fidelity" was 'false' and the supplied "xxx" value did not match any of the "xxx-supported" values, the Printer MUST accept the Job as usual, but MUST NOT store that attribute on the Job object. The Printer MUST return an "xxx" Job attribute in subsequent Get-Job-Attributes and Get-Jobs responses according to the following rules:

[a)] If the Client did not supply the "xxx" Job attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has only a single value (the so-called queue override case), then the Printer MUST return an "xxx" attribute with that current single value in a Get-Job-Attributes or Get-Jobs, response, as if the Client had supplied "xxx" Job attribute with that value.

Rationale for this new behavior: because the printed result will be the same as if the Client had supplied the "xxx" Job attribute with that single value (since that value will override a corresponding PDL instruction), the response should reflect those (new) semantics.

Page 148 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

436437

3827

382838293830

38313832

383338343835383638373838

38393840

38413842

38433844

384538463847

384838493850385138523853

3854385538563857385838593860386138623863

438

Page 149: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[b)] If the Client did not supply the "xxx" Job attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has more than one value, then the Printer MUST NOT return that "xxx" attribute in a Get-Job-Attributes or Get-Jobs response.

Rationale for this new behavior: Same behavior as for the other values of "pdl-override-supported".

[c)] If the Client did supply the "xxx" Job attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has only a single value (the so-called queue override case), then the Printer MUST return that "xxx" Job attribute with the Printer's current "xxx-supported" value in a Get-Job-Attributes or Get-Jobs response, as if the Client had supplied "xxx" with that value.

Rationale for this new behavior: because the behavior of the Printer is to enforce that "xxx" Job attribute with the Printer's current single (override) value.

[d)] If the Client did supply the "xxx" attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has more than one value and one of them match, then the Printer MUST return that "xxx" Job attribute with the Client-supplied value in a Get-Job-Attributes or Get-Jobs response.

Rationale for this new behavior: Same behavior as for the other values of "pdl-override-supported".

[e)] If the Client did supply the "xxx" attribute in the Job Creation operation and the current value of the Printer's "xxx-supported" attribute has more than one value but none of them match, then the Printer MUST NOT return that "xxx" Job attribute with the Client-supplied value in a Get-Job-Attributes or Get-Jobs response. It MUST either (1) not return the attribute at all or return it with one of the supported values, depending on implementation.

Rationale for this new behavior: Same behavior as for the other values of "pdl-override-supported".

The above five cases are represented in Table 13.

Table 31 - Rules for 'guaranteed' value of "pdl-override-supported" attribute

Client Supplies Printer supports "xxx-supported"

Printer's response to Job query request Queue override?

omits "xxx" 'a' "xxx" = 'a' yes

omits "xxx" 'a', 'b' nothing is returned no

Page 149 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4394403864386538663867386838693870

38713872387338743875387638773878

3879388038813882388338843885

388638873888388938903891389238933894

3895

3896

441

Page 150: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

supplies "xxx" = ? 'a' "xxx" = 'a' yes

supplies "xxx" = 'a' 'a', 'b' "xxx" = 'a' no

supplies "xxx" = 'c' 'a', 'b' Either nothing is returned or "xxx" = one of the supported values, depending on implementation.

no

[8.1.2] Examples of queue override

The queue override extension allows an implementation to guarantee that only advertised supported attribute values are actually performed, and that unsupported values embedded as instructions in the document data, will not be performed. This extension is also a further step in making a Printer object indicate what it really supports in both the protocol and the PDL and what it does not, i.e., "truth in advertising". In other words, the absence of a value in the Printer's "xxx-supported" attribute indicates a guarantee that the value cannot be performed.

For example, an administrator that wants to force two-sided printing could set the Printer's "sides-supported" to one of the two values: 'two-sided-long', 'two-sided-short' [STD92]. Thus, a PDL that contained an embedded simplex (one-sided) instruction would be overridden in one of the following ways: (1) aborted, (2) held, or (3) automatically forced to two-sided, depending on implementation and/or site policy.

As another example, an administrator could set up an IPP Printer that always staples by setting the "finishings-supported" to 'staple' only, i.e. by removing the 'none' keyword value [STD92]. In order to allow jobs not to be stapled on the same physical piece of hardware, the administrator would use fan-in (if supported) to set up another IPP Printer that does include the 'none' keyword value in its "finishings-supported" attribute.

The values of the Printer's "xxx-supported" attribute are not only what the Printer will accept in the print protocol (e.g. IPP) as attributes, but also as corresponding values of embedded PDL instructions. If a value that is not in the "xxx-supported" list is encountered in either the print protocol or the PDL, it MUST NOT be performed (no matter what the value of "ipp-attribute-fidelity" is).

The four combinations of unsupported IPP attribute values and unsupported PDL instruction values are:

[1.] Unsupported attribute value in the protocol and "ipp-attribute-fidelity" = 'false' (independent of "pdl-override-supported"):

The Printer object MUST accept the Job with the unsupported attribute value. However, the Printer object will always return only one of its "xxx-supported" values in response to Get-Jobs or Get-Job-Attributes. Depending on implementation, the

Page 150 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

442443

3897

3898389939003901390239033904

39053906390739083909

39103911391239133914

39153916391739183919

39203921

392239233924392539263927

444

Page 151: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Printer can perform this substitution once at Job submission time, or each time the Job is queried.

[2.] Unsupported attribute value in the protocol and "ipp-attribute-fidelity" = 'true' (independent of "pdl-override-supported"):

The Printer MUST reject the job.

[3.] Unsupported embedded instruction value in the PDL and "pdl-override-supported" = 'attempted' or 'not-attempted' (and independent of "ipp-attribute-fidelity"):

When an implementation encounters a value that is not in the "xxx-supported" list, it makes no special action and allows it to be performed. See the definition of "Supports" in [STD92] that indicates that performing a PDL instruction that is not supported in the protocol is an allowed behavior.

[4.] (New case) Unsupported embedded instruction value in the PDL and "pdl-override-supported" = 'guaranteed' (and independent of "ipp-attribute-fidelity"):

The unsupported embedded instruction value MUST NOT be performed. The behavior is implementation-dependent if an unsupported embedded instruction value is encountered. For example, the Printer MAY abort the Job or substitute on the fly with one of the current values of its "xxx-supported" attribute. This choice MAY be fixed by the implementation or configurable by the system administrator and MAY depend on the Job Template attribute.

[8.2] which-jobs (type2 keyword)

This section defines additional keyword values for the IPP "which-jobs" (type2 keyword) Operation attribute of the Get-Jobs operation [STD92] and the “which-jobs-supported” (1setOf type2 keyword) Printer Description attribute (see section 10.9) to include keywords corresponding to the symbolic names of all IPP “job-state” enum values [PWG5100.3], an ‘all’ value, and values to correspond to Proof Print Jobs and Saved Jobs. The following keywords are OPTIONAL to support, unless indicated otherwise in their descriptions.

Keyword Description

'aborted' This includes any Job object whose state is 'aborted'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'all' This includes all Job objects, that is any Job object that is considered 'completed' or 'not-completed' as defined by these values above.

Page 151 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

44544639283929

3930393139323933

3934393539363937393839393940

394139423943394439453946394739483949

3950

395139523953395439553956

447

Page 152: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'canceled' This includes any Job object whose state is 'canceled'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'pending' This includes any Job object whose state is 'pending'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'pending-held' This includes any Job object whose state is 'pending-held'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'processing' This includes any Job object whose state is 'processing'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'processing-stopped' This includes any Job object whose state is 'processing-stopped'. This value corresponds to the symbolic name of the corresponding value for the “job-state” attribute.

'proof-print' Proof Print Jobs, i.e., jobs that have been submitted using the "proof-print" Job Template attribute and which are in the ‘completed’, ‘canceled’, or ‘aborted’ state. If the "proof-print" Job Template attribute is supported, this value MUST be supported.

'saved' Saved Jobs, i.e., jobs that have been saved using the "job-save-disposition" Job Template attribute and which are in the ‘completed’, ‘canceled’, or ‘aborted’ state. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

[8.3] job-state-reasons (1setOf type2 keyword)

The following table defines additional keyword values for the IPP “job-state-reasons” Job Description attribute [STD92] [RFC3998] [PWG5100.3] [PWG5100.6]. The descriptions indicate conditional conformance, if any.

Keyword Description

'job-printed-successfully' The Job was successfully printed but was not successfully saved as indicated by ‘job-saved-with-warnings’ or ‘job-saved-with-errors’. If the Job was not requested to be saved, then use the ‘job-completed-successfully’ value instead. If the "job-save-disposition" Job Template attribute is

Page 152 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

448449

3957

395839593960

450

Smith Kennedy, 09/04/18,
Sadly, the values from STD92 are 'completed' (which means jobs in any of {'completed', 'aborted', 'canceled'} states, and 'not-completed'. So cannot cleanly specify to get all jobs that have completed successfully.
Page 153: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

supported, this value MUST be supported.

'job-printed-with-errors' The Job was printed with errors but was successfully saved as indicated by ‘job-saved-successfully’ or was not successfully saved as indicated by ‘job-saved-with-warnings’ or ‘job-saved-with-errors’. If the Job was not requested to be saved, then use the ‘job-completed-with-errors’ value instead. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-resuming' The Printer is in the process of moving the Job from a suspended condition to a candidate for processing. If the Resume-Job operation [RFC3998] is supported, this value MUST be supported.

'job-saved-successfully' The Job was successfully saved. The Printer MUST also supply ‘job-completed-successfully’, except when “save-disposition” = ‘save-only’. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-saved-with-errors' The Job did not save successfully (whether or not it was printed successfully, printed with warnings, printed with errors, or not printed). The Printer MUST ensure that none of the saved Job is accessible, if it was unable to successfully save all of the job. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-saved-with-warnings' The Job was saved with warnings. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-saving' The Printer is transmitting the Job to the save location. This is similar to the 'job-printing' value. If the "job-save-disposition" Job Template attribute is supported, this value MUST be supported.

'job-spooling' Same as 'job-incoming' with the specialization that the Printer is spooling the document data before processing it. This value corresponds to the 'spool' or 'automatic' value of the "job-spooling-supported" Printer Description attribute.

'job-streaming' Same as 'job-incoming' with the specialization that the Printer is processing the document data as it is being received (that is, the Job is not being spooled, but rather is being processed in chunks by the output device and is being imaged during reception). This value corresponds to the 'stream' or 'automatic' value of the "job-spooling-supported" Printer Description attribute.

Page 153 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

451452

453

Page 154: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

'job-suspended-by-operator' The Job has been indefinitely suspended by the Printer operator. If the Suspend-Current-Job operation [RFC3998] is supported, this value MUST be supported.

'job-suspended-by-system' The Job has been indefinitely suspended by the Printer’s system software during normal processing of the job.

'job-suspended-by-user' The Job has been indefinitely suspended by the user. If the Suspend-Current-Job operation [RFC3998] is supported, this value MUST be supported.

'job-suspending' The Printer is in the process of moving the Job from a processing condition to a suspended condition where other jobs can be processed. If the Suspend-Current-Job operation [RFC3998] is supported, this value MUST be supported.

Note: The semantics of this attribute or the set of valid values may be different for different document formats.

[8.3.1] Additional Semantics for "job-state-reasons" attribute for "job-save-disposition" attribute

This section defines additional values that are defined in support of the "job-save-disposition" attribute in section 7.9).

Many of the existing "job-state-reasons" attribute values can apply to a ‘save-only’ Job as well as a Job submitted for printing. If the value of the “job-disposition” attribute is 'save-only', the "job-state-reasons" attribute MAY be set with existing values such as 'job-incoming', 'resources-are-not-ready' (such as a font), 'job-interpreting', and 'job-queued'. Likewise, errors that occur on a saved Job MAY have existing "job-state-reasons" attribute values such as 'job-data-insufficient', 'document-access-error', 'submission-interrupted', 'job-canceled-by-user', 'aborted-by-system', etc.

There are also new four new "job-state-reasons" keyword values REQUIRED that support a saved Job -- 'job-saving', 'job-saved-successfully', 'job-saved-with-warnings', and 'job-saved-with-errors' -- and these have been added to the list defined above. The existing ‘job-completed-successfully’, job-completed-with-warnings’, and ‘job-completed-with-errors’ values are also clarified in the list above for implementations that support the "job-save-disposition" Job Template attribute, in such a way that these values remain compatible with Printers and clients that do not support Job saving.

Table 14 enumerates the possible combinations of print and save success, warning, and error conditions. Note that two values occur only when there are print warnings/errors and a save error.

Page 154 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

454455

39613962

39633964

39653966

3967396839693970397139723973

3974397539763977397839793980

398139823983

456

Page 155: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Table 32 - Values of "job-state-reasons" attribute for various Job conditions

Not saving Save was successful Save was unsuccessful

Not printing <not possible> 'job-completed-successfully' 'job-saved-with-errors'

Print successful'job-completed-successfully' 'job-completed-successfully' 'job-saved-with-errors'

Print warnings'job-completed-with-warnings' 'job-completed-with-warnings'

'job-completed-with-warnings', 'job-saved-with-errors'

Print errors'job-completed-with-errors' 'job-completed-with-errors'

'job-completed-with-errors', 'job-saved-with-errors'

Print warnings and errors

'job-completed-with-errors' 'job-completed-with-errors'

'job-completed-with-errors', 'job-saved-with-errors'

[9.] Deprecated AttributesThe following attributes are deprecated as of IPP Job and Printer Extensions - Set 2 v2.0.

???

[10.] Additional Semantics for Existing OperationsThis section adds additional semantics to the following existing operations that are defined in other documents:

[1.] Get-Jobs [STD92]

[2.] Hold-Job [STD92]

[3.] Set-Job-Attributes [RFC3380]

[10.1] Get-Jobs: which-jobs (type2 keyword)

The "which-jobs" attribute If supplied and the keyword specified is supported by the Printer's "which-job-supported" attribute (section 15.2), the Printer MUST only return job-id values for those Jobs that match the semantics of the Client specified keyword.

Page 155 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4574583984

3985

3986

3987

3988

3989

39903991

3992

3993

3994

3995

399639973998

459

Page 156: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[10.2] Hold-Job: job-hold-until-time (dateTime)

The "job-hold-until-time" attribute MAY be supported as a Group 1 Operation attribute by the OPTIONAL Hold-Job operation [STD92], in addition to or as a substitute for the "job-hold-until" attribute [STD92]. If the Client does not supply either the "job-hold-until" or the "job-hold-until-time" Operation attributes in the Hold-Job request, the Job MUST create a "job-hold-until" attribute and set its value to 'indefinite' and hold the Job indefinitely, until a Client performs a Release-Job operation [STD92] or a Set-Job-Attributes operation as discussed in section 17.3.

If supplied and supported as specified in the Printer's "job-hold-until-time-supported" attribute, the Job MUST replace its previous "job-hold-until" or "job-hold-until-time" attribute, if present, MUST add the 'job-hold-until-specified' value to its "job-state-reasons" attribute, and MUST make itself a candidate for scheduling after the specified dateTime value.

If the Client supplies a value that specifies a dateTime that has already occurred, and the Job also supports the "job-hold-until-time" operation attribute, the Job MUST accept the request, and MUST remove the 'job-hold-until-specified' value from its "job-state-reasons" attribute, if present. If there are no other reasons to hold the Job, the Job MUST make itself a candidate for processing immediately [STD92].

If supplied, but either the "job-hold-until-time" Operation attribute itself or the value supplied is not supported, i.e., is out of range, the Job MUST accept the request, MUST add the "job-hold-until" = 'indefinite' attribute, MUST add the 'job-hold-until-specified' value to its "job-state-reasons" attribute, MUST return the unsupported attribute or value in the Unsupported Attributes Group [STD92], MUST return 'successful-ok-ignored-or-substituted-attributes' as the operation response status code, and the Printer MUST hold the Job indefinitely until a Client performs a subsequent Release-Job operation.

[10.3] Set-Job-Attributes

The following Job Template attributes MAY be settable using the Set-Job-Attributes operation [RFC3380], in which case they MUST be so indicated as values returned by the Printer's "job-settable-attributes-supported" attribute [RFC3380]:

[1.] "job-delay-output-until" (type2 keyword | name(MAX)) - see section 7.4

[2.] "job-delay-output-until-time" (dateTime) - see section 7.5.

[3.] "job-hold-until" (type2 keyword | name(MAX)) - see [STD92]

[4.] "job-hold-until-time" (dateTime) - see section 7.6

Page 156 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

460461

3999

4000400140024003400440054006

40074008400940104011

40124013401440154016

4017401840194020402140224023

4024

402540264027

4028

4029

4030

4031

462

Page 157: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[10.3.1] Set-Job-Attributes: job-delay-output-until (type2 keyword | name(MAX)) and job-delay-output-until-time" (dateTime)

If either the "job-delay-output-until" or the "job-delay-output-until-time" operation attribute is supplied in the Set-Job-Attributes operation request, and is specified in the Printer's "job-settable-attributes-supported" attribute [RFC3380], the Job object MUST update its previous "job-delay-output-until" or "job-delay-output-until-time" attribute values, if present, MUST add the 'job-delay-output-until-specified' value to the job's "job-state-reasons" attribute, and MUST make the Job a candidate for scheduling after the specified date-time.

The "job-delay-output-until" and "job-delay-output-until-time" attributes are mutually exclusive. If one is set on the Job and the other is supplied in a Set-Job-Attributes operation, the one supplied replaces the other on the job. Furthermore, as with Job Creation operations, a Client MUST NOT supply both a "job-delay-output-until" and a "job-delay-output-until-time" attribute in the same Set-Job-Attributes request. If a Client does supply such a malformed request, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code [STD92].

If the Client (1) supplies a value that specifies a period or date-time that has already occurred and (2) the IPP object supports the "job-delay-output-until" or "job-delay-output-until-time" operation attribute, respectively, the IPP object MUST accept the request, MUST remove the 'job-delay-output-until-specified' value from the job's "job-state-reasons" attribute, if present. If there are no other reasons to hold the job, the IPP object MUST make the Job be a candidate for processing immediately [STD92].

If supplied, but either the "job-delay-output-until" or the "job-delay-output-until-time" operation attribute itself or the value supplied is not supported, i.e., is out of range, the IPP object MUST accept the request, MUST add the "job-delay-output-until" = 'indefinite' attribute, MUST add the 'job-delay-output-until-specified' value to the job's "job-state-reasons" attribute, MUST return the unsupported attribute or value in the Unsupported Attributes Group [STD92], MUST return the 'successful-ok-ignored-or-substituted-attributes' operation status code [STD92], and MUST hold the Job indefinitely until a Client performs a subsequent Release-Job operation [STD92].

[10.3.2] Set-Job-Attributes: job-hold-until (type2 keyword | name(MAX)) and job-hold-until-time (dateTime) operation attributes

If either the "job-hold-until" or the "job-hold-until-time" operation attribute is supplied in the Set-Job-Attributes operation and supported as specified in the Printer's "job-settable-attributes-supported" attribute [RFC3380], the IPP object MUST copy the supplied operation attribute to the Job object, replacing the job's previous "job-hold-until" or "job-hold-until-time" attribute, if present, MUST add the 'job-hold-until-specified' value to the job's "job-state-reasons" attribute, and MUST make the Job a candidate for scheduling after the specified date-time.

Page 157 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

46346440324033

403440354036403740384039

4040404140424043404440454046

404740484049405040514052

40534054405540564057405840594060

40614062

4063406440654066406740684069

465

Smith Kennedy, 08/31/18,
Does the Job make itself a candidate? Or does the Printer recognize that the Job is a candidate via inspection of the Job's state?
Page 158: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

The "job-hold-until" and "job-hold-until-time" attributes are mutually exclusive. If one is set on the Job and the other is supplied in a Set-Job-Attributes operation, the one supplied replaces the other on the job. Furthermore, as with Job Creation operations, a Client MUST NOT supply both a "job-hold-until" and a "job-hold-until-time" attribute in the same Set-Job-Attributes request. If a Client does supply such a malformed request, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' status code [STD92].

If the Client supplies a value that specifies a period or dateTime that has already occurred and the Job supports the "job-hold-until" or "job-hold-until-time" operation attribute, respectively, the Job MUST accept the Set-Job-Attributes request and MUST remove the 'job-hold-until-specified' value from its "job-state-reasons" attribute, if present. If there are no other reasons to hold the job, the IPP object MUST make the Job be a candidate for processing immediately [STD92].

If supplied, but either the "job-hold-until" or "job-hold-until-time" operation attribute itself or the value supplied is not supported, i.e., is out of range, the Job MUST accept the request, MUST add the "job-hold-until" attribute to itself and set its value to 'indefinite', MUST add the 'job-hold-until-specified' value to its "job-state-reasons" attribute, MUST report it as unsupported by listing the unsupported attribute or value in the Unsupported Attributes Group in the operation response [STD92], MUST return the 'successful-ok-ignored-or-substituted-attributes' status code, and MUST hold the Job indefinitely until a Client performs a subsequent Release-Job operation [STD92].

[11.] Obsolete Operations and Attributes

13.6 Obsolete Operations

The Reprocess-Job operation defined in [RFC3998] is obsolete because

13.7 Obsolete Attributes

13.8 Obsolete Attribute Values

14. Changes Since 5100.11-2010The following summarizes the changes made in updates to 5100.11 since its v1.0 release.

Page 158 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4664674070407140724073407440754076

407740784079408040814082

40834084408540864087408840894090

4091

4092

4093

4094

4095

4096

4097

4098

4099

4100

468

Smith Kennedy, 09/04/18,
Itself?
Smith Kennedy, 09/04/18,
Again, what are the appropriate semantics? Does a Job hold itself, or is a Job held by a Printer? The phrase "the IPP object" is vague, and this sentence's appropriate phrasing depends on whether the Job or the Printer does the scheduling.
Page 159: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

14.1 PWG 5100.11 v2.0

Added "job-storage" as a replacement for the now deprecated "job-save-disposition"

Added "job-print-password" as a more flexible replacement for "job-password"

Added "job-password-repertoire" and "job-password-length-supported" that were registered in 2016

Added "job-retain-until" and "job-retain-until-time"

15. Conformance RequirementsThis section summarizes the Conformance Requirements detailed in the definitions in this document for clientsClient and Printer objects (servers or devices).

15.1[11.1] Conformance Requirements for this specification

In order for a client and a Printer to claim conformance to this IPP Job and PrinterExtensions – Set 2 v2.0 Specification, a clientClient MUST be able to supply and a Printer MUST support the following:

1. The Cancel-Jobs operation (section 5.1)

2. The Cancel-My-Jobs operation (section 5.2)

3. The Close-Job operation (section 5.3)

4. The Resubmit-Job operation (section 5.4)

[5.] The Reprocess-Job operation [RFC3998][RFC3998]

[6.] The "job-ids" Operation attribute (section 6.3) in the Get-Jobs operation [STD92][RFC2911] (section 3.2.6)

[7.] The "job-ids" Operation attribute (section 6.3) in the Purge-Jobs operation [STD92],[RFC2911] (section 3.2.9), if Purge-Jobs operation is supported (section 6.4)

5.[8.] The "proof-print" Job Template attribute (sections 7.11). See also section 12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template attribute

6.[9.] The "job-ids-supported" Printer Description attribute (section 10.2)

7.[10.] The "which-jobs-supported" Printer Description attribute (see section 10.9 for which values)

Page 159 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

469470

4101

4102

4103

41044105

4106

4107

41084109

4110

411141124113

4114

4115

4116

4117

4118

41194120

41214122

41234124

4125

41264127

471

Page 160: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

The other attributes defined in this specification are OPTIONAL for a client to be able to supply and for a Printer to support.

[11.2] Conditional Conformance Requirements for Printer objectsPrinters

The following conditional conformance requirements are defined:

If the Printer supports: then the Printer MUST also support:

"job-hold-until-time" Job Template attribute in Job Creation operations

"job-hold-until" Job Template attribute ([STD92] and the )

Hold-Job operation with the "job-hold- until" ([STD92]) and "job-hold-until-time" (see section 8.1 above)8.8) Operation attributes and the

Release-Job operation. [STD92].

"job-delay-output-until-time" Job Template attribute in Job Creation operations

"job-delay-output-until" Job Template attribute (see section 7.4 above) and the 8.4)

Set-Job-Attributes operation (see section 8.2 above).9.2)

"job-delay-output-until" Job Template attribute in Job Creation operations Set-Job-Attributes operation (see section 8.2 above).9.2)

Each of the collection attribute definitions indicate which member attributes are REQUIRED and which are

OPTIONAL for a Printer to support and is not repeated here.

If a Printer supports the 'collection' attribute syntax of a Job Template attribute , then it MUST support the distinguished none value defined for that collection. See section 2.7 of [PWG5100.3].

Support of the 'name' attribute syntax for Job Template attributes and collection member attributes is OPTIONAL, as in IPP/1.1 [STD92].

[11.3] Conformance Requirements for Clients

Clients that support a "xxx" collection Job Template attribute SHOULD use the Get-Printer-Attributes request to obtain the "xxx-default" collection and display that to the user, so that the user can make any changes before submitting the Job. Then the client submits values for all member attributes, rather than depending on the Printer's defaulting for omitted

Page 160 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

47247341284129

4130

4131

4132

4133

41344135

4136

413741384139

41404141

4142

4143414441454146

474

Page 161: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

member attributes, since such defaulting is implementation dependent and will vary from Printer to Printer.

[11.4] Conformance Requirements for the OPTIONAL "job-save-disposition" Job Template attribute

This section specifies the conformance requirements for Printers and clients if they support the OPTIONAL "job- save-disposition" Job Template attribute. It also defines the conformance requirements for Job Save Format specifications.

[11.4.1] Client Conformance Requirements for the 'job-save-disposition" attribute

In order to claim conformance for the OPTIONAL "job-save-dispositions" Job Template attribute, clients:

[1.] MUST support the “job-save-disposition” (collection) attribute according to the description in section 7.9, including the member attributes as REQUIRED by Table 7.

[2.] MUST support the “save-info” (collection) member attribute according to the "job-save-disposition" attribute description in section 7.9, including the member attributes as REQUIRED by Table 8.

[3.] MUST support the Reprocess-Job and Resubmit-Job operations for printing saved jobs according to section 4.3 above.

[11.4.2] Printer Conformance Requirements for the 'job-save-disposition" attribute

In order to claim conformance for the OPTIONAL "job-save-dispositions" Job Template attribute, Printers:

[1.] MUST support the “job-save-disposition” (collection) Job Template attribute according to the description in section 7.9, including the member attributes as REQUIRED by Table 7 and the “job-save-disposition- default” attribute and the “job-save-disposition-supported” attribute.

[2.] MUST support all of the “save-disposition” member attribute values defined in the "job-save-disposition" description section 7.9.

[3.] MUST support the “save-info” (collection) member attribute according to the "job-save-disposition" attribute description in section 7.9, including the member attributes as REQUIRED by Table 8 and the “save- location-supported”, “save-name-supported”, “save-document-format-supported”, and “save-info- supported” Printer attributes.

Page 161 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

47547641474148

4149

4150

415141524153

4154

41554156

415741584159

416041614162

41634164

4165

41664167

4168416941704171

41724173

41744175417641774178

477

Page 162: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[4.] SHOULD support the ‘ftp:’, and ‘http:’ schemes and MAY support 'file:' scheme for use in the “save- location” member attribute as defined in the "job-save-disposition" attribute description in section 7.9.

[5.] MUST support at least one “save-document-format” (mimeMediaType) attribute value, as defined in the "job-save-disposition" attribute description in section 7.9, for use in the “save-document-format” member attribute.

[6.] SHOULD support a superset of the values of the Printer’s “save-document-format-supported” attribute (section 7.9.1.2.3.3.2) as the values of the Printer’s “document-format-supported” attribute [STD92].

[7.] MUST support the "job-save-printer-make-and-model" Job Description attribute (see section 9.1).

[8.] MUST support the "which-jobs-supported" Printer Description attribute (see section 10.9) and the 'saved' keyword values (see section 11.2).

[9.] MUST support the ‘job-saving’, 'job-saved-successfully', 'job-saved-with-warnings', and ‘job-saved-with- errors’ values of the “job-state-reasons” Job Description attribute as defined in the "job-state-reasons" attribute description in section 11.3.

[11.4.3] Job Save Format Specification Conformance Requirements

Documents that define a Job Save format MUST contain the following information:

[1.] MUST specify the mimeMediaType value that identifies the Job Save Format, e.g., 'application/X-single- page-tiff'.

[2.] MUST define the representation for PDL data.

[3.] MUST specify the formats of the document content and how the Job Save Format file references the document content, e.g., using Relative URI value (see [RFC2396]) to reference the document content in the “document-uri” operation attribute.

[4.] MUST define whether or not Printers with differing values of their “printer-make-and-model” Printer attributes are expected to print saved jobs with the same appearance, i.e., whether or not a Printer MUST omit the “job-printer-make-and-model” Job Description attribute when saving the job in the defined format (see the "job-printer-make-and-model" attribute description in section 9.1).

Page 162 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

478479417941804181

418241834184

418541864187

41884189

41904191

419241934194

4195

4196

41974198

4199

4200420142024203

42044205420642074208

480

Page 163: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[11.5] Conformance Requirements for the REQUIRED "proof-print" Job Template attribute

Conforming Printers and clients MUST support the REQUIRED "proof-print" Job Template attribute.

[11.5.1] Client Conformance Requirements for the 'proof-print" attribute

Conforming clients:

[1.] MUST support the “proof-print” (collection) attribute according to the description in section 7.11, including the member attributes as REQUIRED by Table 12.

[2.] MUST support the Reprocess-Job and Resubmit-Job operations for printing saved jobs according to section 4.4 above.

[11.5.2] Printer Conformance Requirements for the 'proof-print" attribute

Conforming Printers:

[1.] MUST support the “proof-print” (collection) Job Template attribute according to the description in section 7.11, including the member attributes as REQUIRED by Table 12 and the “proof-print-default” attribute and the “proof-print-supported” attribute.

MUST support the "which-jobs-supported" Printer Description attribute (see section 10.9) and the 'saved' keyword values (see section 11.2).

16.[12.] Internationalization ConsiderationsFor interoperability and basic support for multiple languages, conforming implementations MUST support: the Universal Character Set (UCS) Transformation Format -- 8 bit (UTF-8) [RFC3629] encoding of Unicode [UNICODE] [ISO10646] and the Unicode Format for Network Interchange [RFC5198].

[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).

Page 163 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

481482

4209

4210

42114212

4213

4214

42154216

42174218

4219

4220

422142224223

42244225

4226

4227422842294230

42314232

423342344235

423642374238

483

Page 164: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

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

Unicode Normalization Forms [UAX15] – especially NFC for [RFC5198RFC 5198]

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 in XML and other Markup Languages [UTR20] – XML usage

Unicode Character Property Model [UTR23] – character properties

Unicode Conformance Model [UTR33] – Unicode conformance basis

17.[13.] Security ConsiderationsThe IPP extensions defined in this document require the same In addition to the security considerations as defineddescribed in the Internet Printing ProtocolIPP/1.1: Model and Semantics [STD92].

Implementations], implementations of this specification SHOULD conform to the following standardstandards on processing of human-readable Unicode text strings, see:

Page 164 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4844854239424042414242

42434244

42454246

4247

42484249

4250

42514252

4253

4254

42554256

4257

4258

4259

4260

4261

426242634264

42654266

486

Page 165: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

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

18.[14.] IANA Considerations

18.1[14.1] IPP Attribute and Keyword Value Registrations

This section contains the exact registration information for IANA to update according to the procedures defined in [STD92].

The registry entries will contain the following information:

Job Template attributes: Reference ---------------------------------------- ------------feed-orientation (type2 keyword) [PWG5100.11]font-name-requested (name(MAX)) [PWG5100.11]font-size-requested (integer (1:MAX)) [PWG5100.11]job-delay-output-until (type2 keyword | name(MAX)) [PWG5100.11]job-delay-output-until-time (dateTime) [PWG5100.11]job-hold-until-time (dateTime) [PWG5100.11]job-phone-number (uri) [PWG5100.11]job-recipient-name (name(MAX)) [PWG5100.11]job-save-disposition (collection) [PWG5100.11] save-disposition (type2 keyword) [PWG5100.11] save-info (1setOf collection) [PWG5100.11] save-document-format (mimeMediaType) [PWG5100.11] save-location (uri) [PWG5100.11] save-name (name(MAX)) [PWG5100.11]pdl-init-file (1setOf collection) [PWG5100.11]pdl-init-file-entry (name(MAX)) [PWG5100.11]pdl-init-file-location (uri) [PWG5100.11]pdl-init-file-name (name(MAX)) [PWG5100.11]proof-print (collection) [PWG5100.11]media (type2 keyword | name(MAX)) [PWG5100.11]media-col (collection) [PWG5100.11]proof-print-copies (integer (0:MAX)) [PWG5100.11]media-col (collection) [PWG5100.11]media-grain (type2 keyword | name(MAX)) [PWG5100.11]media-thickness (integer(1:MAX)) [PWG5100.11]media-tooth (type2 keyword | name(MAX)) [PWG5100.11]

Operation attributes: Reference ---------------------------------------- ------------job-ids (1setOf integer(1:MAX)) [PWG5100.11]job-password (octetString(255)) [PWG5100.11]job-password-encryption (type2 keyword | name(MAX)) [PWG5100.11]

Page 165 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

48748842674268

42694270

4271

4272

4273

42744275

4276

4277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313

489

Page 166: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Job Description attributes: Reference ---------------------------------------- ------------job-save-printer-make-and-model (text(127)) [PWG5100.11]

Printer Description attributes: Reference ---------------------------------------- ------------feed-orientation-default (type2 keyword) [PWG5100.11]feed-orientation-supported (1setOf (type2 keyword)) [PWG5100.11]font-name-requested-default (name(MAX)) [PWG5100.11]font-name-requested-supported (1setOf name(MAX)) [PWG5100.11]font-size-requested-default (integer (1:MAX)) [PWG5100.11]font-size-requested-supported (1setOf rangeOfInteger (1:MAX)) [PWG5100.11]job-creation-attributes-supported (1setOf type2 keyword) [PWG5100.11]job-delay-output-until-default (type2 keyword | name(MAX)) [PWG5100.11]job-delay-output-until-supported (1setOf (type2 keyword | name(MAX)) [PWG5100.11]job-delay-output-until-time-supported (rangeOfInteger(0:MAX)) [PWG5100.11]job-hold-until-time-supported (rangeOfInteger(0:MAX) [PWG5100.11]job-ids-supported (boolean) [PWG5100.11]job-password-encryption-supported (1setOf (type2 keyword | name(MAX))) [PWG5100.11]job-password-supported (integer(0:255)) [PWG5100.11]job-phone-number-default (uri) [PWG5100.11]job-phone-number-supported (boolean) [PWG5100.11]job-recipient-name-default (name(MAX)) [PWG5100.11]job-recipient-name-supported (boolean) [PWG5100.11]job-spooling-supported (type2 keyword) [PWG5100.11]max-save-info-supported (integer(1:MAX)) [PWG5100.11]media-col-database (1setOf collection) [PWG5100.11]pdl-init-file-default (1setOf collection) [PWG5100.11]pdl-init-file-entry-supported (1setOf name(MAX)) [PWG5100.11]pdl-init-file-location-supported (1setOf uri) [PWG5100.11]pdl-init-file-name-subdirectory-supported (boolean) [PWG5100.11]pdl-init-file-name-supported (1setOf name(MAX)) [PWG5100.11]pdl-init-file-supported (1setOf type2 keyword) [PWG5100.11]printer-detailed-status-messages (1setOf text(MAX)) [PWG5100.11]proof-print-default (collection) [PWG5100.11]proof-print-supported (1setOf type2 keyword) [PWG5100.11]save-disposition-supported (1setOf (type2 keyword)) [PWG5100.11]save-document-format-default (mimeMediaType) [PWG5100.11]save-document-format-supported (1setOf mimeMediaType) [PWG5100.11]save-location-default (uri) [PWG5100.11]save-location-supported (1setOf uri) [PWG5100.11]save-name-subdirectory-supported (boolean) [PWG5100.11]save-name-supported (boolean) [PWG5100.11]which-jobs-supported (1setOf type2 keyword) [PWG5100.11]

18.2[14.2] Attribute Value Registrations

The attributes defined in this specification will be published by IANA according to the procedures in IPP/1.1 Model and Semantics [STD92] section 7.1 in the following file:

http://www.iana.org/assignments/ipp-registrationshttp://www.iana.org/assignments/ipp-registrations

The registry entries will contain the following information:

Attribute (attribute syntax)

Page 166 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

490491431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358

4359

43604361

43624363

4364

4365

492

Page 167: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Keyword Attribute Value Reference------------------------------- -------------feed-orientation (type2 keyword) [PWG5100.11] long-edge-first [PWG5100.11] short-edge-first [PWG5100.11]

job-creation-attributes-supported (1setOf type2 keyword) [PWG5100.11] <all Jobjob template attributes supported at the Jobjob level> <all operation attributes supported at the Jobjob level>

job-password-encryption (type2 keyword | name(MAX)) [PWG5100.11]job-password-encryption-supported (1setOf (type2 keyword | name(MAX))) [PWG5100.11] md2 [PWG5100.11] md4 [PWG5100.11] md5 [PWG5100.11] none [PWG5100.11] sha [PWG5100.11]

job-save-disposition-supported (1setOf type2 keyword) [PWG5100.11] save-disposition [PWG5100.11] save-info [PWG5100.11]

job-spooling-supported (type2 keyword) [PWG5100.11] automatic [PWG5100.11] spool [PWG5100.11] stream [PWG5100.11]

job-state-reasons (type2 keyword):) [PWG5100.11] job-delay-output-until-specified [PWG5100.11] job-password-wait [PWG5100.11] job-printed-successfully [PWG5100.11] job-printed-with-errors [PWG5100.11] job-printed-with-warnings [PWG5100.11] job-resuming [PWG5100.11] job-retain-until-specified [PWG5100.11] job-saved-successfully [PWG5100.11] job-saved-with-errors [PWG5100.11] job-saved-with-warnings [PWG5100.11] job-saving [PWG5100.11] job-spooling [PWG5100.11] job-streaming [PWG5100.11] job-suspended-by-operator [PWG5100.11] job-suspended-by-system [PWG5100.11] job-suspended-by-user [PWG5100.11] job-suspending [PWG5100.11]

job-storage-supported (type2 keyword) [PWG5100.11] job-storage-access [PWG5100.11] job-storage-disposition [PWG5100.11] job-storage-group [PWG5100.11] job-storage-password [PWG5100.11] job-storage-password-encryption [PWG5100.11]

media-grain (type2 keyword | name(MAX)) [PWG5100.11] x-direction [PWG5100.11] y-direction [PWG5100.11]

media-tooth (type2 keyword | name(MAX)) [PWG5100.11] antique [PWG5100.11]

Page 167 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4934944366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426

495

Page 168: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

calendared [PWG5100.11] coarse [PWG5100.11] fine [PWG5100.11] linen [PWG5100.11] medium [PWG5100.11] smooth [PWG5100.11] stipple [PWG5100.11] uncalendared [PWG5100.11] vellum [PWG5100.11]

media-type (type2 keyword) [PWG5100.11] aluminum [PWG5100.11] cardboard [PWG5100.11] cd [PWG5100.11] corrugated-board [PWG5100.11] disc [PWG5100.11] double-wall [PWG5100.11] dry-film [PWG5100.11] dvd [PWG5100.11] end-board [PWG5100.11] embossing-foil [PWG5100.11] film [PWG5100.11] flexo-base [PWG5100.11] flexo-photo-polymer [PWG5100.11] flute [PWG5100.11] foil [PWG5100.11] gravure-cylinder [PWG5100.11] image-setter-paper [PWG5100.11] imaging-cylinder [PWG5100.11] laminating-foil [PWG5100.11] letterhead [PWG5100.11] mounting-tape [PWG5100.11] other [PWG5100.11] paper [PWG5100.11] plate [PWG5100.11] polyester [PWG5100.11] screen [PWG5100.11] self-adhesive [PWG5100.11] single-face [PWG5100.11] single-wall [PWG5100.11] sleeve [PWG5100.11] shrink-foil [PWG5100.11] tractor [PWG5100.11] triple-wall [PWG5100.11] wet-film [PWG5100.11]

pdl-init-file-supported (1setOf type2 keyword) [PWG5100.11] pdl-init-file-entry [PWG5100.11] pdl-init-file-location [PWG5100.11] pdl-init-file-name [PWG5100.11]

pdl-override-supported (type2 keyword): [PWG5100.11] guaranteed [PWG5100.11]

proof-print-supported (1setOf type2 keyword) [PWG5100.11] media [PWG5100.11] media-col [PWG5100.11] proof-print-copies [PWG5100.11]

save-disposition (type2 keyword) [PWG5100.11]

Page 168 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4964974427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487

498

Page 169: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

none [PWG5100.11] print-save [PWG5100.11] save-only [PWG5100.11]

save-info-supported (1setOf type2 keyword) [PWG5100.11] save-document-format [PWG5100.11] save-location [PWG5100.11] save-name [PWG5100.11]

which-jobs (type2 keyword) [PWG5100.11] aborted [PWG5100.11] all [PWG5100.11] canceled [PWG5100.11] completed [PWG5100.11] pending [PWG5100.11] pending-held [PWG5100.11] processing [PWG5100.11] processing-stopped [PWG5100.11] proof-print [PWG5100.11] saved saved [PWG5100.11] stored [PWG5100.11]

18.3[14.3] Type2 enum attribute value registrationsAttribute (attribute syntax) Enum Value Enum Symbolic Name Reference ---------- ------------------ -----------operations-supported (1setOf type2 enum) [PWG5100.11] 0x0038 Cancel-Jobs [PWG5100.11] 0x0039 Cancel-My-Jobs [PWG5100.11] 0x003B Close-Job [PWG5100.11] 0x003A Resubmit-Job [PWG5100.11]

18.4[14.4] Operation registrationsOperation Name Reference -------------------------------------- ----------- Cancel-Jobs [PWG5100.11]Cancel-My-Jobs [PWG5100.11]Close-Job [PWG5100.11]Resubmit-Job [PWG5100.11]

19.[15.] References

19.1[15.1] Normative References

[IANAIPPIANA-IPP] "IANA IPP Registry", IANA Registry, http://www.iana.org/assignments/ipp-registrations

[ISO10646] "Information technology -- Universal Coded Character Set (UCS)", ISO/IEC 10646:2011

Page 169 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

4995004488448944904491449244934494449544964497449844994500450145024503450445054506450745084509

4510

45114512451345144515451645174518

4519

452045214522452345244525

4526

4527

45284529

45304531

501

Page 170: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[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 https://ftp.pwg.org/pub/pwg/candidates/cs-ippprodprint10- 20010212- 5100.3.pdf

[PWG5100.5] D. Carney, T. Hastings, P. Zehler, "IPP: Document Object", PWG 5100.5-2003, October 2003, http://ftp.pwg.org/pub/pwg/candidates/cs-ippdocobject10-20031031-5100.5.pdf http://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 https://ftp.pwg.org/pub/pwg/candidates/cs- ipppageoverride10-20031031-5100.6.pdf

[PWG5100.11] T. Hastings, D. Fullman, "IPP Job and Printer Extensions - Set 2 (JPS2)", PWG 5100.11-2010, October 2010, http://ftp.pwg.org/pub/pwg/candidates/cs-ippjobprinterext10-20101030-5100.11.pdf http://ftp.pwg.org/pub/pwg/candidates/cs- ippjobprinterext10-20101030-5100.11.pdf

[PWG5100.12] M. Sweet, I. McDonald, "IPP Version 2.0, 2.1, and 2.2", PWG 5100.12-2015, October 2015, http://ftp.pwg.org/pub/pwg/standards/std-ipp20-20151030-5100.12.pdf http://ftp.pwg.org/pub/pwg/standards/std-ipp20-20151030- 5100.12.pdf

[RFC2119] S. Bradner, “Key words for use in RFCs to Indicate Requirement Levels", RFC 2119/BCP 14, March 1997, http://tools.ietf.org/html/rfc2119 http://tools.ietf.org/html/rfc2119

[RFC2806] A. Vaha-Sipila, "URLs for Telephone Calls", RFC 2806, April 2000, https://tools.ietf.org/html/rfc2806 https://tools.ietf.org/html/rfc2806

[RFC3380] T. Hastings, R. Herriot, C. Kugler, H. Lewis, "Internet Printing Protocol (IPP): Job and Printer Set Operations", RFC 3380, September 2002, https://tools.ietf.org/html/rfc3380 https://tools.ietf.org/html/rfc3380

[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

[RFC3629] F. Yergeau, “UTF-8, a transformation format of ISO 10646”, RFC 3629, November 2003, https://tools.ietf.org/html/rfc3629

Page 170 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

50250345324533453445354536

4537453845394540

45414542454345444545

45464547454845494550

45514552455345544555

455645574558

45594560

456145624563

456445654566

45674568

504

Page 171: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[RFC3805] R. Bergman, H. Lewis, I. McDonald, "Printer MIB v2", RFC 3805, June 2004, https://tools.ietf.org/html/rfc3805 https://tools.ietf.org/html/rfc3805

[RFC3806] R. Bergman, H. Lewis, I. McDonald, "Printer Finishing MIB", RFC 3806, June 2004, https://tools.ietf.org/html/rfc3806 https://tools.ietf.org/html/rfc3806

[RFC3998] C. Kugler, H. Lewis, T. Hastings, "Internet Printing Protocol (IPP): Job and Printer Administrative Operations", RFC 3998, March 2005, https://tools.ietf.org/html/rfc3998 https://tools.ietf.org/html/rfc3998

[RFC5198] J. Klensin, M. Padlipsky, "Unicode Format for Network Interchange", RFC 5198, March 2008, http://tools.ietf.org/html/rfc5198 http://tools.ietf.org/html/rfc5198

[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 https://tools.ietf.org/html/rfc7230

[STD63] F. Yergeau, "UTF-8, a transformation format of ISO 10646", RFC 3629/STD 63, November 2003, http://tools.ietf.org/html/rfc3629 http://tools.ietf.org/html/rfc3629

[STD66] T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", RFC 3986/STD 66, January 2005, http://tools.ietf.org/html/rfc3986 http://tools.ietf.org/html/rfc3986

[STD92] M. Sweet, I. McDonald, "Internet Printing Protocol/1.1: Model and Semantics", STD 92 / RFC 8011, January 2017, http://tools.ietf.org/html/rfc8011 http://tools.ietf.org/html/rfc8011

[UAX9] Unicode Consortium, “Unicode Bidirectional Algorithm”, UAX#9, May 2018, https://www.unicode.org/reports/tr9 https://www.unicode.org/reports/tr9

[UAX14] Unicode Consortium, “Unicode Line Breaking Algorithm”, UAX#14, May 2018, https://www.unicode.org/reports/tr14 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 https://www.unicode.org/reports/ tr15

Page 171 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

505506456945704571

457245734574

457545764577

457845794580

458145824583

458445854586

458745884589

459045914592

459345944595

4596459745984599

4600460146024603

507

Page 172: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[UAX29] Unicode Consortium, “Unicode Text Segmentation”, UAX#29, May 2018, https://www.unicode.org/reports/tr29 https://www.unicode.org/reports/ tr29

[UAX31] Unicode Consortium, “Unicode Identifier and Pattern Syntax”, UAX#31, June 2018, https://www.unicode.org/reports/tr31 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/ https://www.unicode.org/versions/Unicode11.0.0/

[UTS10] Unicode Consortium, “Unicode Collation Algorithm”, UTS#10, May 2018, https://www.unicode.org/reports/tr10 https://www.unicode.org/reports/ tr10

[UTS35] Unicode Consortium, “Unicode Locale Data Markup Language”, UTS#35, March 2018, https://www.unicode.org/reports/tr35 https://www.unicode.org/reports/ tr35

[UTS39] Unicode Consortium, “Unicode Security Mechanisms”, UTS#39, May 2018, https://www.unicode.org/reports/tr39 https://www.unicode.org/reports/ tr39

19.2[15.2] Informative References

[REFERENCE] F. Last author list or standards body, "Title of referenced document", Document Number, Month YYYY, URL (if any)

[PWG_PROC] "PWG Process: Definition of the Standards Development Process", PWG Process 3.0, , January 2009, https://ftp.pwg.org/pub/pwg/general/pwg-process-30.pdf

[RFC1759] R. Smith, F. Wright, T. Hastings, S. Zilles, J. Gyllenskog, “IETF Printer MIB”, RFC 1759, March 1995, http://www.ietf.org/rfc/rfc1759.txt http://www.ietf.org/rfc/rfc1759.txt

[RFC2567] F.D. Wright, "IETF Design Goals for an Internet Printing Protocol", RFC 2567, April 1999, http://www.ietf.org/rfc/rfc2567.txt http://www.ietf.org/rfc/rfc2567.txt

Page 172 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

5085094604460546064607

4608460946104611

461246134614

4615461646174618

4619462046214622

4623462446254626

4627

46284629

463046314632

463346344635

463646374638

510

Page 173: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[RFC2707] R. Bergman, T. Hastings, S. Isaacson, H. Lewis, "IETF Job Monitoring MIB - V1.0", RFC 2707, September 1999, http://www.ietf.org/rfc/rfc2707.txt http://www.ietf.org/rfc/rfc2707.txt

[UTR17] Unicode Consortium “Unicode Character Encoding Model”, UTR#17, November 2008, https://www.unicode.org/reports/tr17 https://www.unicode.org/reports/ tr17

[UTR23] Unicode Consortium “Unicode Character Property Model”, UTR#23, May 2015, https://www.unicode.org/reports/tr23 https://www.unicode.org/reports/ tr23

[UTR33] Unicode Consortium “Unicode Conformance Model”, UTR#33, November 2008, https://www.unicode.org/reports/tr33 https://www.unicode.org/reports/ tr33

[UNISECFAQ] Unicode Consortium “Unicode Security FAQ”, November 2013,https://www.unicode.org/faq/security.html https://www.unicode.org/faq/security.html

20.[16.] Authors' AddressesIra McDonaldHigh North IncPO Box 221Grand Marais, MI 49839Phone: 906-494-2434Email: [email protected]

Ron BergmanEmail: [email protected]

Smith KennedyHP Inc.11311 Chinden Blvd.Boise ID [email protected]

The following individuals also contributed to the development of this document:

Charles Baxter XeroxJohn Boyd Toshiba

Page 173 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

511512463946404641

4642464346444645

4646464746484649

4650465146524653

465446554656

4657

465846594660466146624663466446654666466746684669467046714672

4673

46744675

513

Page 174: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

Lee FarrellWalt FilbrichGail Giansiracusa Kyocera MitaSheng Lee ToshibaHarry LewisStuart Rowley InfoPrint SolutionsMichael Sweet AppleOle Skov MPI TechThomas Silver XeroxJerry Thrasher LexmarkPaul Tykodi Tykodi Consulting ServicesBill Wagner TICCraig Whittle Sharp LabsPeter Zehler Xerox

Page 174 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

51451546764677467846794680468146824683468446854686468746884689

516

Page 175: IPP Job and Printer Extensions – Set 2 v2.0 - ftp.pwg.org  · Web viewThe Printer Working Group (or PWG) is a Program of the IEEE Industry Standards and Technology Organization

Working Draft – IPP Job and Printer Extensions – Set 2 v2.0 (JPS2) February 14, 2019August 30, 2018February 14, 2019

[17.] Overview of Changes

[17.1] IPP Job and Printer Extensions - Set 2 v2.0

These changes were made to produce the IPP Job and Printer Extensions - Set 2 v2.0 revision.

???

[18.] Change History

20.1[18.1] February 14, 2019

Updated with proposed changes following the November 2018 F2F slide presentation and discussion, and new attributes to replace those that were determined to be obsolete or deprecated:

Updated set of terms, use cases and design requirements

Deprecated the "job-save-disposition" and related attributes

Deprecated "job-password"

Added new "job-storage" and related attributes

Added new "job-print-password" and related attributes

Many editorial changes

20.2 August 28, 2018

Initial revision of JPS2v2. A number of editorial changes to update references and move Printer Description attributes to their rightful section.

Page 175 of 175 Copyright © 2018-2019 The Printer Working Group. All rights reserved.

517518

4690

4691

46924693

4694

4695

4696

469746984699

4700

4701

4702

4703

4704

4705

4706

47074708

519