96
Copyright © 2010, Printer Working Group. All rights reserved. 1 2 2 7 September 2010 07 November 2010 3 Stable 4 5 The Printer Working Group 6 7 Standard for Internet Printing Protocol (IPP): 8 Job and Printer Extensions – Set 2 (JPS2) 9 10 Status: Stable Draft 11 12 Abstract: This Job and Printer Extensions - Set 2 Specification (JPS2) defines an extension to the Internet 13 Printing Protocol/1.0 (IPP) ([RFC2565], [RFC2566]), IPP/1.1 ([RFC2910], [RFC2911]), and [RFC3380]. This JPS2 14 consists of a REQUIRED Job Template attribute to print a proof print(s) of the job prior to printing the full run of the 15 job and OPTIONAL Job Template attributes for submitting print jobs that permit a user to save jobs for later 16 reprinting (i.e., retain the jobs indefinitely), provide a recipient name and a job phone number, provide the feed 17 orientation, provide the font name and font size, hold a job until a specific date and time, delay the output of a job 18 (but allow processing) until a specified time period, delay the output of a job (but allow processing) until a specific 19 date and time, and specify an interpreter initialization file. 20 This JPS2 also defines four new REQUIRED operations - Cancel-Jobs, Cancel-My-Jobs, Close-Job, and 21 Resubmit-Job - and a new REQUIRED "job-ids" operation attribute to be used with the existing Get-Jobs and 22 Purge-Jobs operations. Cancel-Jobs allows an operator/administrator to cancel a list of Not Completed jobs or all 23 Not Completed jobs on the Printer. Cancel-My-Jobs allows a user to cancel a list of their Not Completed jobs or all 24 their Not Completed jobs. Close-Job allows a client to close a multi-document job without supplying any additional 25 documents (to support streaming clients and servers). Resubmit-Job allows a user to re-process a modified copy 26 of a Retained Job. Get-Jobs with the "job-ids" attribute allows a user to get a list of jobs. Purge-Jobs with the "job- 27 ids" attribute allows an operator/administrator to purge a list of jobs. There are also Printer Description attributes to 28 list the Job Creation attributes supported, indicate whether jobs are spooled, and list the set of media collections 29 supported. In addition, conformance to JPS2 also REQUIRES support of the Reprocess-Job operation defined in 30 [RFC3998]. 31 Some of the Job Template attributes defined in this specification are also defined to be supplied as Operation 32 attributes in the Hold-Job ([RFC2911]) and Set-Job-Attributes ([RFC3380]) operations. 33 In addition, OPTIONAL semantics for Attribute Precedence, a Queue Override Feature, and a feature to guarantee 34 protocol precedence over the PDL attribute are defined. 35 Comment [th1]: v37, 2010-11-07, Updates found by PWG Steering Committee. Change tracking for v37 and v36. Comment [th2]: v36 updated at the IPP WG telecon, 11/01/2010 Comment [th3]: V35 to clarifiy conformance based on Kyocera-Mita comments.

Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

  • Upload
    others

  • View
    4

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

Copyright © 2010, Printer Working Group. All rights reserved.

1 2 27 September 201007 November 2010 3 Stable 4

5

The Printer Working Group 6

7

Standard for Internet Printing Protocol (IPP): 8

Job and Printer Extensions – Set 2 (JPS2) 9

10

Status: Stable Draft 11

12

Abstract: This Job and Printer Extensions - Set 2 Specification (JPS2) defines an extension to the Internet 13 Printing Protocol/1.0 (IPP) ([RFC2565], [RFC2566]), IPP/1.1 ([RFC2910], [RFC2911]), and [RFC3380]. This JPS2 14 consists of a REQUIRED Job Template attribute to print a proof print(s) of the job prior to printing the full run of the 15 job and OPTIONAL Job Template attributes for submitting print jobs that permit a user to save jobs for later 16 reprinting (i.e., retain the jobs indefinitely), provide a recipient name and a job phone number, provide the feed 17 orientation, provide the font name and font size, hold a job until a specific date and time, delay the output of a job 18 (but allow processing) until a specified time period, delay the output of a job (but allow processing) until a specific 19 date and time, and specify an interpreter initialization file. 20

This JPS2 also defines four new REQUIRED operations - Cancel-Jobs, Cancel-My-Jobs, Close-Job, and 21 Resubmit-Job - and a new REQUIRED "job-ids" operation attribute to be used with the existing Get-Jobs and 22 Purge-Jobs operations. Cancel-Jobs allows an operator/administrator to cancel a list of Not Completed jobs or all 23 Not Completed jobs on the Printer. Cancel-My-Jobs allows a user to cancel a list of their Not Completed jobs or all 24 their Not Completed jobs. Close-Job allows a client to close a multi-document job without supplying any additional 25 documents (to support streaming clients and servers). Resubmit-Job allows a user to re-process a modified copy 26 of a Retained Job. Get-Jobs with the "job-ids" attribute allows a user to get a list of jobs. Purge-Jobs with the "job-27 ids" attribute allows an operator/administrator to purge a list of jobs. There are also Printer Description attributes to 28 list the Job Creation attributes supported, indicate whether jobs are spooled, and list the set of media collections 29 supported. In addition, conformance to JPS2 also REQUIRES support of the Reprocess-Job operation defined in 30 [RFC3998]. 31

Some of the Job Template attributes defined in this specification are also defined to be supplied as Operation 32 attributes in the Hold-Job ([RFC2911]) and Set-Job-Attributes ([RFC3380]) operations. 33

In addition, OPTIONAL semantics for Attribute Precedence, a Queue Override Feature, and a feature to guarantee 34 protocol precedence over the PDL attribute are defined. 35

Comment [th1]: v37, 2010-11-07, Updates found by PWG Steering Committee. Change tracking for v37 and v36.

Comment [th2]: v36 updated at the IPP WG telecon, 11/01/2010

Comment [th3]: V35 to clarifiy conformance based on Kyocera-Mita comments.

Page 2: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 2 of 96

36

37

38

39

40

This document is a PWG Working Draft. For a definition of a "PWG Working Draft" and “Prototype Draft”, see: 41

ftp://ftp.pwg.org/pub/pwg/general/process/pwg-process30.pdf 42

This document is available electronically at: 43

ftp://ftp.pwg.org/pub/pwg/wd/wd-ippprodprintext10-20090803.pdf 44

Page 3: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 3 of 96

Copyright (C) 2010, The Printer Working Group. All rights reserved. 45

This document may be copied and furnished to others, and derivative works that comment on, or otherwise explain 46 it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without 47 restriction of any kind, provided that the above copyright notice, this paragraph and the title of the Document as 48 referenced below are included on all such copies and derivative works. However, this document itself may not be 49 modified in any way, such as by removing the copyright notice or references to the Printer Working Group, a 50 program of the IEEE-ISTO. 51

Title: Standard for Internet Printing Protocol (IPP): Job and Printer Extensions - Set 2 Specification (JPS2) 52

The IEEE-ISTO and the Printer Working Group DISCLAIM ANY AND ALL WARRANTIES, WHETHER EXPRESS 53 OR IMPLIED INCLUDING (WITHOUT LIMITATION) ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 54 FITNESS FOR A PARTICULAR PURPOSE. 55

The Printer Working Group, a program of the IEEE-ISTO, reserves the right to make changes to the document 56 without further notice. The document may be updated, replaced or made obsolete by other documents at any 57 time. 58

The IEEE-ISTO and the Printer Working Group, a program of the IEEE-ISTO take no position regarding the 59 validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation 60 or use of the technology described in this document or the extent to which any license under such rights might or 61 might not be available; neither does it represent that it has made any effort to identify any such rights. 62

The IEEE-ISTO and the Printer Working Group, a program of the IEEE-ISTO invite any interested party to bring to 63 its attention any copyrights, patents, or patent applications, or other proprietary rights, which may cover technology 64 that may be required to implement the contents of this document. The IEEE-ISTO and its programs shall not be 65 responsible for identifying patents for which a license may be required by a document and/or IEEE-ISTO Industry 66 Group Standard or for conducting inquiries into the legal validity or scope of those patents that are brought to its 67 attention. Inquiries may be submitted to the IEEE-ISTO by e-mail at: 68

[email protected] 69

The Printer Working Group acknowledges that the IEEE-ISTO (acting itself or through its designees) is, and shall 70 at all times, be the sole entity that may authorize the use of certification marks, trademarks, or other special 71 designations to indicate compliance with these materials. 72

Use of this document is wholly voluntary. The existence of this document does not imply that there are no other 73 ways to produce, test, measure, purchase, market, or provide other goods and services related to its scope. 74

75

Page 4: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 4 of 96

About the IEEE-ISTO 76

The IEEE-ISTO is a not-for-profit corporation offering industry groups an innovative and flexible operational forum 77 and support services. The IEEE Industry Standards and Technology Organization member organizations include 78 printer manufacturers, print server developers, operating system providers, network operating systems providers, 79 network connectivity vendors, and print management application developers. The IEEE-ISTO provides a forum not 80 only to develop standards, but also to facilitate activities that support the implementation and acceptance of 81 standards in the marketplace. The organization is affiliated with the IEEE (http://www.ieee.org/) and the IEEE 82 Standards Association (http://standards.ieee.org/). 83

For additional information regarding the IEEE-ISTO and its industry programs visit: 84 http://www.ieee-isto.org. 85 86 About the Printer Working Group 87

The Printer Working Group (or PWG) is a Program of the IEEE-ISTO. All references to the PWG in this document 88 implicitly mean “The Printer Working Group, a Program of the IEEE ISTO.” The PWG is chartered to make 89 printers and the applications and operating systems supporting them work together better. In order to meet this 90 objective, the PWG will document the results of their work as open standards that define print related protocols, 91 interfaces, data models, procedures and conventions. Printer manufacturers and vendors of printer related 92 software would benefit from the interoperability provided by voluntary conformance to these standards. 93

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

Contact information: 97

The Printer Working Group 98 c/o The IEEE Industry Standards and Technology Organization 99 445 Hoes Lane 100 Piscataway, NJ 08854 101 USA 102

103 IPP Web Page: http://www.pwg.org/ipp IPP Mailing List: [email protected] 104 105 Instructions for subscribing to the IPP mailing list can be found at the following link: 106

http://www.pwg.org/mailhelp.html 107

Members of the PWG and interested parties are encouraged to join the PWG and IPP WG mailing lists in order to 108 participate in discussions, clarifications and review of the WG product. 109

Page 5: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 5 of 96

110

CONTENTS 111

1 INTRODUCTION..........................................................................................................................................12 112

2 TERMINOLOGY ..........................................................................................................................................13 113

2.1 Conformance Terminology ................................................................................................................................... 14 114

2.2 Other terminology ................................................................................................................................................ 14 115

3 REQUIREMENTS ........................................................................................................................................15 116

3.1 Rationale ............................................................................................................................................................... 16 117

3.2 Use Cases............................................................................................................................................................... 17 118 3.2.1 Proof Print ......................................................................................................................................................... 17 119 3.2.2 Job Save............................................................................................................................................................. 17 120 3.2.3 Reprint Job......................................................................................................................................................... 17 121

3.3 Design Requirements ............................................................................................................................................ 18 122

4 SEMANTICS COMMON TO MORE THAN ONE ATTRIBUTE .....................................................................18 123

4.1 Guaranteed Protocol Precedence Over the PDL and Queue Overrides ............................................................. 18 124

4.2 Attribute Precedence ............................................................................................................................................ 19 125

4.3 Job Save and Reprint OPTIONAL Feature......................................................................................................... 20 126 4.3.1 Reprinting Saved Jobs ........................................................................................................................................ 20 127

4.3.1.1 Reprinting using the Reprocess-Job operation ........................................................................................... 20 128 4.3.1.2 Reprinting using the Resubmit-Job operation ............................................................................................ 21 129

4.4 Job Proof Print REQUIRED Feature .................................................................................................................. 21 130

5 NEW REQUIRED OPERATIONS.................................................................................................................21 131

5.1 Cancel-Jobs operation .......................................................................................................................................... 21 132 5.1.1 Cancel-Jobs Request........................................................................................................................................... 22 133 5.1.2 Cancel-Jobs Response ........................................................................................................................................ 23 134

5.2 Cancel-My-Jobs operation.................................................................................................................................... 23 135 5.2.1 Cancel-My-Jobs Request .................................................................................................................................... 24 136 5.2.2 Cancel-My-Jobs Response .................................................................................................................................. 25 137

5.3 Close-Job Operation ............................................................................................................................................. 25 138 5.3.1 Close-Job Request .............................................................................................................................................. 25 139 5.3.2 Close-Job Response............................................................................................................................................ 26 140

Page 6: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 6 of 96

5.4 Resubmit-Job Operation....................................................................................................................................... 26 141 5.4.1 Resubmit-Job Request ........................................................................................................................................ 27 142 5.4.2 Resubmit-Job Response ...................................................................................................................................... 28 143

6 NEW OPERATION ATTRIBUTES FOR EXISTING OPERATIONS .............................................................28 144

6.1 job-password (octetString(255)) for Job Creation operations ............................................................................ 28 145

6.2 job-password-encryption (type3 keyword | name(MAX)) for Job Creation operations .................................... 28 146

6.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation .............................................................................. 28 147

6.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation........................................................................... 29 148

7 JOB TEMPLATE ATTRIBUTES ..................................................................................................................29 149

7.1 feed-orientation (type3 keyword) ........................................................................................................................ 29 150 7.1.1 feed-orientation-default (type3 keyword) ........................................................................................................... 30 151 7.1.2 feed-orientation-supported (1setOf (type3 keyword)) ......................................................................................... 30 152

7.2 font-name-requested (name(MAX)) .................................................................................................................... 30 153 7.2.1 font-name-requested-default (name(MAX))....................................................................................................... 30 154 7.2.2 font-name-requested-supported (1setOf name(MAX)) ....................................................................................... 30 155

7.3 font-size-requested (integer (1:MAX)) ................................................................................................................ 31 156 7.3.1 font-size-requested-default (integer (1:MAX))................................................................................................... 31 157 7.3.2 font-size-requested-supported (1setOf rangeOfInteger (1:MAX))....................................................................... 31 158

7.4 job-delay-output-until (type3 keyword | name(MAX)) ........................................................................................ 31 159 7.4.1 job-delay-output-until-default (type3 keyword | name(MAX))............................................................................. 33 160 7.4.2 job-delay-output-until-supported (1setOf type3 keyword | name(MAX)) ............................................................. 33 161

7.5 job-delay-output-until-time (dateTime)................................................................................................................ 34 162 7.5.1 Why there is no job-delay-output-until-time-default attribute.............................................................................. 35 163 7.5.2 job-delay-output-until-time-supported (rangeOfInteger(0:MAX)) ....................................................................... 35 164

7.6 job-hold-until-time (dateTime) ............................................................................................................................ 36 165 7.6.1 Why there is no job-hold-until-time-default........................................................................................................ 37 166 7.6.2 job-hold-until-time-supported (rangeOfInteger(0:MAX)) ................................................................................... 37 167

7.7 job-phone-number (uri) ....................................................................................................................................... 39 168 7.7.1 job-phone-number-default (uri) ......................................................................................................................... 40 169 7.7.2 job-phone-number-supported (boolean) ............................................................................................................. 40 170

7.8 job-recipient-name (name(MAX))....................................................................................................................... 40 171 7.8.1 job-recipient-name-default (name(MAX)) ......................................................................................................... 40 172 7.8.2 job-recipient-name-supported (boolean)............................................................................................................. 40 173

7.9 job-save-disposition (collection)........................................................................................................................... 40 174 7.9.1 Member Attributes for the "job-save-disposition" Job Template Attribute ........................................................... 41 175

7.9.1.1 save-disposition (type3 keyword)............................................................................................................... 41 176 7.9.1.1.1 save-disposition-supported (1setOf type3 keyword) ............................................................................... 43 177

Page 7: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 7 of 96

7.9.1.2 save-info (1setOf collection)...................................................................................................................... 43 178 7.9.1.2.1 There is no save-info-default Printer attribute ....................................................................................... 43 179 7.9.1.2.2 save-info-supported (1setOf type2 keyword).......................................................................................... 43 180 7.9.1.2.3 Member Attributes for the "save-info" member attribute ....................................................................... 43 181

7.9.1.2.3.1 save-location (uri) ......................................................................................................................... 44 182 7.9.1.2.3.1.1 save-location-default (uri) ...................................................................................................... 45 183 7.9.1.2.3.1.2 save-location-supported (1setOf uri)....................................................................................... 45 184

7.9.1.2.3.2 save-name (name(MAX)) .............................................................................................................. 45 185 7.9.1.2.3.2.1 There is no “save-name-default” Printer attribute................................................................... 46 186 7.9.1.2.3.2.2 save-name-supported (boolean) .............................................................................................. 46 187 7.9.1.2.3.2.3 save-name-subdirectory-supported (boolean) .......................................................................... 46 188

7.9.1.2.3.3 save-document-format (mimeMediaType) ..................................................................................... 46 189 7.9.1.2.3.3.1 save-document-format-default (mimeMediaType) .................................................................. 47 190 7.9.1.2.3.3.2 save-document-format-supported (1setOf mimeMediaType)................................................... 47 191

7.9.1.2.3.4 Printer actions for various combinations of attributes..................................................................... 47 192 7.9.2 job-save-disposition-default (collection) ............................................................................................................ 48 193 7.9.3 job-save-disposition-supported (1setOf type2 keyword)...................................................................................... 49 194

7.10 pdl-init-file (1setOf collection)............................................................................................................................. 49 195 7.10.1 Member Attributes for the "pdl-init-file" Job Template Attribute ................................................................... 49 196

7.10.1.1 pdl-init-file-location (uri) .......................................................................................................................... 50 197 7.10.1.1.1 pdl-init-file-location-supported (1setOf uri)......................................................................................... 50 198

7.10.1.2 pdl-init-file-name (name(MAX))............................................................................................................... 50 199 7.10.1.2.1 pdl-init-file-name-supported (1setOf name(MAX)) ............................................................................. 50 200 7.10.1.2.2 pdl-init-file-name-subdirectory-supported (boolean)............................................................................ 50 201

7.10.1.3 pdl-init-file-entry (name(MAX)) ............................................................................................................... 51 202 7.10.1.3.1 pdl-init-file-entry-supported (1setOf name(MAX)).............................................................................. 51 203

7.10.2 pdl-init-file-default (1setOf collection).......................................................................................................... 51 204 7.10.3 pdl-init-file-supported (1setOf type2 keyword) .............................................................................................. 51 205

7.11 proof-print (collection) REQUIRED Job Template attribute ............................................................................ 51 206 7.11.1 Member Attributes for the "proof-print" Job Template Attribute .................................................................... 51 207

7.11.1.1 proof-print-copies (integer (0:MAX))........................................................................................................ 52 208 7.11.1.2 media (type3 keyword | name(MAX)) or media-col (collection)................................................................. 52 209

7.11.2 proof-print-default (collection)...................................................................................................................... 53 210 7.11.3 proof-print-supported (1setOf type2 keyword)............................................................................................... 53 211

8 ADDITIONAL SEMANTICS FOR EXISTING OPERATIONS........................................................................53 212

8.1 Additional attribute for use with the Hold-Job operation ................................................................................... 53 213 8.1.1 job-hold-until-time (dateTime) operation attribute in a Hold Job operation ......................................................... 53 214

8.2 Additional attributes for use with the Set-Job-Attributes operation................................................................... 54 215 8.2.1 job-delay-output-until (type3 keyword | name(MAX)) and job-delay-output-until-time" (dateTime) operation 216 attributes in a Set-Job operation ....................................................................................................................................... 54 217 8.2.2 job-hold-until" (type3 keyword | name(MAX)) and job-hold-until-time (dateTime) operation attributes in a Set-218 Job-Attributes operation ................................................................................................................................................... 55 219

9 JOB DESCRIPTION ATTRIBUTES .............................................................................................................55 220

9.1 job-save-printer-make-and-model (text(127))..................................................................................................... 55 221

Page 8: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 8 of 96

10 PRINTER DESCRIPTION ATTRIBUTES.....................................................................................................56 222

10.1 job-creation-attributes-supported (1setOf type2 keyword) ................................................................................ 56 223

10.2 job-ids-supported (boolean) .................................................................................................................................. 56 224

10.3 job-password-supported (integer(0:255)) ............................................................................................................ 56 225

10.4 job-password-encryption-supported (1setOf (type3 keyword | name(MAX)))................................................... 57 226

10.5 job-spooling-supported (type2 keyword)............................................................................................................. 57 227

10.6 max-save-info-supported (integer(1:MAX))........................................................................................................ 58 228

10.7 media-col-database (1setOf collection)................................................................................................................ 58 229

10.8 printer-detailed-status-messages (1setOf text(MAX)) ......................................................................................... 58 230

10.9 which-jobs-supported (1setOf type2 keyword) ................................................................................................... 58 231

11 ADDITIONAL VALUES AND SEMANTICS FOR EXISTING IPP ATTRIBUTES ..........................................59 232

11.1 pdl-override-supported (type2 keyword) Printer Description attribute ............................................................ 59 233

11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf type2 keyword) Printer 234 Description attribute .......................................................................................................................................................... 61 235

11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute .................................................................. 62 236 11.3.1 Additional Semantics for "job-state-reasons" attribute for "job-hold-until-time" attribute ............................... 64 237 11.3.2 Additional Semantics for "job-state-reasons" attribute for "job-save-disposition" attribute.............................. 64 238

11.4 Additional keyword values for the “media-type” member attribute................................................................... 65 239

11.5 Additional semantics for the IPP "media-col" Job Template Attribute ............................................................. 67 240 11.5.1 media-tooth (type3 keyword | name(MAX)) ................................................................................................... 67 241

11.5.1.1 media-tooth-supported (1setOf (type3 keyword | name(MAX)))................................................................. 68 242 11.5.2 media-grain (type3 keyword | name(MAX))................................................................................................... 68 243

11.5.2.1 media-grain-supported (1setOf (type3 keyword | name(MAX))) ................................................................ 68 244 11.5.3 media-thickness (integer(1:MAX)) ................................................................................................................ 69 245

11.5.3.1 media-thickness-supported (rangeOfInteger(1:MAX))............................................................................... 69 246

12 CONFORMANCE REQUIREMENTS............................................................................................................69 247

12.1 Conformance Requirements for this specification ............................................................................................... 69 248

12.2 Conditional Conformance Requirements for Printer objects.............................................................................. 70 249

12.3 Conformance Requirements for clients................................................................................................................ 70 250

12.4 Conformance Requirements for the OPTIONAL "job-save-disposition" Job Template attribute .................... 70 251 12.4.1 Client Conformance Requirements for the 'job-save-disposition" attribute...................................................... 70 252 12.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute .................................................... 71 253

Page 9: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 9 of 96

12.4.2.1 Job Save Format Specification Conformance Requirements....................................................................... 71 254

12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template attribute.................................. 72 255 12.5.1 Client Conformance Requirements for the 'proof-print" attribute ................................................................... 72 256 12.5.2 Printer Conformance Requirements for the 'proof-print" attribute .................................................................. 72 257

13 IANA CONSIDERATIONS............................................................................................................................72 258

13.1 Attribute Registration........................................................................................................................................... 72 259

13.2 Attribute Value Registration ................................................................................................................................ 74 260

13.3 Type2 enum attribute value registrations ............................................................................................................ 77 261

13.4 Operation registrations......................................................................................................................................... 77 262

14 INTERNATIONALIZATION CONSIDERATIONS .........................................................................................77 263

15 SECURITY CONSIDERATIONS ..................................................................................................................77 264

16 REFERENCES.............................................................................................................................................77 265

16.1 Normative References........................................................................................................................................... 77 266

16.2 Informative References......................................................................................................................................... 78 267

17 EDITOR'S ADDRESSES..............................................................................................................................79 268

18 APPENDIX X - CHANGE LOG.....................................................................................................................79 269

18.1 7 November 2010 (v37, v36, v35) .......................................................................................................................... 80 270

18.2 27 September 2010 - For PWG Formal Vote ....................................................................................................... 80 271

18.3 25 September 2010 (v33) - PWG Last Call Comments ........................................................................................ 80 272

18.4 13 September (v32) - Stable Version: Editied comments from the F2F held August 5, 2010. ............................ 80 273

18.5 25 July 1020 (v31) - Stable Version: Edited during the IPP WG 2010-07-19 telecon and after; ready for PWG 274 Last Call ............................................................................................................................................................................. 81 275

18.6 18 July 2010 (v30) - Stable version with attempt to resolve some of Apple's IPP WG Last Call Comments ..... 81 276

18.7 6 June 2010 (v28) - Stable version ........................................................................................................................ 82 277

18.8 16 May 2010 (v27)................................................................................................................................................. 82 278

18.9 19 April 2010 (v26) ............................................................................................................................................... 82 279

18.10 18 April 2010 (v25) ............................................................................................................................................... 83 280

Page 10: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 10 of 96

18.11 6 April 2010 (v24) ................................................................................................................................................. 83 281

18.12 30 March 2010 (v23) ............................................................................................................................................. 84 282

18.13 29 March 2010 (v22) - during telecon .................................................................................................................. 84 283

18.14 28 March 2010 (v21) ............................................................................................................................................. 84 284

18.15 15 March 2010 (v20) ............................................................................................................................................. 84 285

18.16 1 March 2010 (v19) ............................................................................................................................................... 85 286

18.17 28 February 2010 (v18)......................................................................................................................................... 85 287

18.18 10 January 2010 (v16)........................................................................................................................................... 85 288

18.19 10 December 2009 (v15)........................................................................................................................................ 86 289

18.20 2 December 2009 (v0.14)....................................................................................................................................... 86 290

18.21 30 November 2009 (v0.13)..................................................................................................................................... 87 291

18.22 22 November 2009 (v0.12)..................................................................................................................................... 87 292

18.23 2 November 2009 (v0.11) ...................................................................................................................................... 87 293

18.24 25 October 2009 (v0.10)........................................................................................................................................ 88 294

18.25 14 October 2009 (v0.9).......................................................................................................................................... 89 295

18.26 8 October 2009 (v0.8)............................................................................................................................................ 90 296

18.27 5 October 2009 (v0.7)............................................................................................................................................ 90 297

18.28 4 October 2009 (v0.6)............................................................................................................................................ 92 298

18.29 14 September 2009 (v0.5)...................................................................................................................................... 93 299

18.30 10 September 2009 (v0.4)...................................................................................................................................... 94 300

18.31 1 September 2009 (v0.3): ...................................................................................................................................... 95 301

18.32 3 August 2009 (v0.2).............................................................................................................................................. 96 302

18.33 21 August 2002 [sic] (v0.1) .................................................................................................................................... 96 303

304

Table of Figures 305

Figure 1 - Job Creation Operation Flow Diagram with "job-delay-output-until" specified ........................................34 306

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

Page 11: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 11 of 96

Figure 3 - Job Creation Operation Flow Diagram with "job-hold-until-time" specified.............................................38 308

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

310

List of Tables 311

Table 1 - Summary of Attributes defined...............................................................................................................12 312

Table 2 - Summary of Operations defined or referenced.......................................................................................13 313

Table 3 - Legal job state transitions for Cancel-Jobs and Cancel-My-Jobs operations ...........................................22 314

Table 4 - State Transition Table for the Resubmit-Job operation ...........................................................................27 315

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

Table 6 - Comparison of "job-delay-output-until-time" with "job-hold-until-time".....................................................35 317

Table 7 - "job-save-disposition" member attributes................................................................................................41 318

Table 8 - "save-info" member attributes ................................................................................................................43 319

Table 9 - URI Schemes for "save-location" member attribute................................................................................45 320

Table 10 - Printer actions for various Job and Printer attribute values...................................................................48 321

Table 11 - "pdl-init-file" member attributes ............................................................................................................49 322

Table 12 - "proof-print" member attributes.............................................................................................................52 323

Table 13 - Rules for 'guaranteed' value of "pdl-override-supported" attribute.........................................................60 324

Table 14 - Values of "job-state-reasons" attribute for various job conditions ..........................................................65 325

Table 15 – Additional "media-col" member attributes ............................................................................................67 326

327

Page 12: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 12 of 96

328

1 Introduction 329

This specification defines an extension to the Internet Printing Protocol/1.0 (IPP) [RFC2565, RFC2566] and 330 IPP/1.1 [RFC2910, RFC2911]. This specification defines Operation attributes, Job Template attributes, and 331 Printer Description attributes as summarized in Table 1. This specification also defines or references REQUIRED 332 operations as summarized in Table 2. Finally, this specification defines OPTIONAL semantics for Attribute 333 Precedence, a Queue Override Feature, and a feature to guarantee protocol precedence over the PDL directives. 334

Table 1 - Summary of Attributes defined 335

Attribute Name (syntax) Description Conformance

Operation attributes: job-password (octetString(255))

password for secure printing OPTIONAL

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

password encryption method for secure printing OPTIONAL

job-ids (1setOf integer(1:MAX))

List of job ids for Cancel-Jobs, Cancel-My-Jobs, Get-Jobs, and Purge-Jobs operations.

REQUIRED

Job Template attributes: feed-orientation (type3 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 (type3 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 job OPTIONAL job-recipient-name (name(MAX))

name of the person that is to receive the output of the job OPTIONAL

job-save-disposition (collection)

save the Document Data of a job, such that the job can be re-printed

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 job REQUIRED Job Description attribute:

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

make and model of the output device which saved this job OPTIONAL

Printer Description attributes: job-creation-attributes-supported (1setOf type2 keyword)

set of Job Creation attributes supported OPTIONAL

Page 13: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 13 of 96

Attribute Name (syntax) Description Conformance

job-ids-supported (boolean) Whether “job-ids-supported” is supported 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 (type3 keyword | name(MAX)))

encryption methods supports for Secure Print OPTIONAL

job-spooling-supported (type2 keyword)

indicates whether or not jobs are spooled before printing 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

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 336 document format (PDL) directive. In such cases, the user MAY request that the application include these 337 directives as part of the document data when the document is generated, rather than in the IPP protocol at print 338 time. However, some applications are unable to generate such PDL directives when generating the PDL 339 document data. Also some of these semantics are not supported in some PDLs. Finally, in a production 340 environment, the document may be generated separately from being printed, in which case the end user or the 341 production printer operator supplies the instructions at print time, long after the document had been created. 342

Table 2 - Summary of Operations defined or referenced 343

Operation Description Conformance

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

REQUIRED

Cancel-My-Jobs allows a user to cancel a list of their Not Completed jobs or all their Not Completed jobs

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]

REQUIRED

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

344

2 Terminology 345

This section defines the following additional terms that are used throughout this document. 346

Page 14: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 14 of 96

2.1 Conformance Terminology 347

Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, MAY, 348 NEED NOT, and OPTIONAL, have special meaning relating to conformance to this document. These 349 terms are defined in [RFC2911 section 13.1 on conformance terminology, most of which is taken from 350 RFC 2119 [RFC2119]. Since support of the attributes defined in this specification is OPTIONAL for 351 conformance to IPP/1.0 ([RFC2566], [RFC2565]) or IPP/1.1 ([RFC2911], [RFC2910]), the terms MUST, 352 MUST NOT, REQUIRED, SHOULD, SHOULD NOT, MAY, NEED NOT, and OPTIONAL apply if 353 and only if the attribute is implemented. Thus a feature labeled as REQUIRED in this document is not 354 REQUIRED if implementing the basic IPP/1.1 protocol defined by [RFC2911] and [RFC2910], but is 355 REQUIRED if implementing the attribute in which the term occurs. 356

2.2 Other terminology 357

Term Description

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 [RFC2911] 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 job 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 job 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] 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

The Job Save and Reprint Feature (section 4.3) is additional OPTIONAL functionality to allow a user to save a print job as part of job 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 job 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]

Job-Submission Operations

The Job-Submission Operations are the IPP operations that create jobs and send document content, namely Print-Job, Print-URI, Create-Job, Send-

Page 15: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 15 of 96

Term Description

Document and Send-URI. See [RFC2911] for further information.

Precedence The specification of the order or ranking of a series of instructions or attributes from multiple sources referring to the same functionality. See Section 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 Section 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 job 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 jobs) 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 job out after an implementation-defined period.

Raster image A binary representation of an image.

Retained Job A Retained Job is a job that the Printer retains in the so-called Job Retention Phase (see [RFC2911] section 4.3.7.2 Partitioning of Job States) in the job’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 job out after an implementation-defined period.

358

3 Requirements 359

In order to satisfy the PWG Process/3.0 [PWG-PROC], the following requirements for JPS2 are included in this 360 section: 361

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

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

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

Page 16: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 16 of 96

3.1 Rationale 365

IETF and PWG IPP printing standards define: 366

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

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

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

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

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

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

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

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

Therefore, this IPP JPS2 specification should: 390

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

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

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

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

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

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

(7) Discourage the proliferation of vendor proprietary IPP operations and attributes that damage IPP 397 interoperability by duplicating IETF or PWG IPP standard operations and attributes. 398

Page 17: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 17 of 96

3.2 Use Cases 399

3.2.1 Proof Print 400

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

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

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

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

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

3.2.2 Job Save 416

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

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

3.2.3 Reprint Job 424

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

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

Page 18: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 18 of 96

3.3 Design Requirements 434

The IPP JPS2 design should: 435

(1) Follow the naming conventions defined in IETF IPP/1.1 [RFC2911], including keyword value 436 (lowercase) and hyphenation requirements; 437

(2) Optimize compatibility with existing IETF and PWG IPP operations when making design decisions 438 in defining new operations and attributes; 439

(3) Define new proof print attributes; 440

(4) Define new job saving attributes; 441

(5) Define a new Cancel-Jobs operation (for Operator); 442

(6) Define a new Cancel-My-Jobs operation (for Job Owner); 443

(7) Define a new Close-Job operation (for Job Owner); 444

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

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

4 Semantics common to more than one attribute 449

4.1 Guaranteed Protocol Precedence Over the PDL and Queue Overrides 450

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

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

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

Page 19: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 19 of 96

4.2 Attribute Precedence 468

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

The attribute precedence model has the following features: 473

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

2) Attributes can be introduced and modified at different points in the job workflow, e.g., in the 475 application, print driver, submission client, protocol, and Printer: 476

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

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

3) Attributes can be introduced and modified at different points in the job workflow, e.g., in the 481 application, print driver, submission client, protocol, and Printer: 482

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

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

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

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

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

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

5. PDL Init File data - a file that the Printer uses to initialize the PDL Interpreter before it starts 503 interpreting each document in a Job. See description of “pdl-init-file” Job Template attribute in 504 Section 7.10 of this specification. It is immaterial how this file is specified, whether it be by a queue 505

Page 20: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 20 of 96

override, job object attribute or printer default – the precedence of the contents of this file is at this 506 level. 507

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

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

4.3 Job Save and Reprint OPTIONAL Feature 520

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

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

4.3.1 Reprinting Saved Jobs 537

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

4.3.1.1 Reprinting using the Reprocess-Job operation 541

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

Comment [th4]: ISSUE: OK to add OPTIONAL to title?

Page 21: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 21 of 96

when reprinting a Proof Print Job, the Printer MUST NOT copy the “proof-print” attribute to the job copy; otherwise, 548 the job would be proofed again. 549

4.3.1.2 Reprinting using the Resubmit-Job operation 550

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

557

4.4 Job Proof Print REQUIRED Feature 558

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

5 New REQUIRED Operations 571

This section defines the following new IPP REQUIRED operations: 572

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

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

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

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

5.1 Cancel-Jobs operation 579

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

Comment [th5]: ISSUE: OK to add REQUIRED to title?

Comment [th6]: ISSUE: OK to add "REQUIRED" here? Yes

Comment [th7]: ISSUE: OK to add "REQUIRED" here? Yes

Page 22: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 22 of 96

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 586 completed, canceled, or aborted. Since a specified Job might already be printing by the time a Cancel-Jobs 587 operation is received, some media sheet pages might be printed before the job is actually terminated. 588

The client specifies the set of candidate jobs to be canceled by supplying and/or omitting the “job-ids” (1setOf 589 integer(1:MAX)) (see section 5.1.1 below), First, the Printer MUST check the access rights of the requesting user 590 to endure that it is the Operator or Administrator of the Printer (see Access Rights below). If this check succeeds, 591 then (and only then) the Printer MUST accept or reject the request based on the current state of each of the 592 candidate jobs and transition each job to the indicated new state as shown in Table 3 (copied verbatim from 593 [RFC2911], including the Rule 1 and 2 for the convenience of the reader). If any of the candidate jobs cannot be 594 canceled, the Printer MUST NOT cancel any jobs and MUST return the indicated error status code along with the 595 list of offending “job-id” values in the “job-ids” operation attribute (see section 5.1.2). 596

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

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

'pending' 'canceled' 'successful-ok'

'pending-held' 'canceled' 'successful-ok' 'processing' 'canceled' 'successful-ok' 'processing' 'processing' 'successful-ok' See Rule 1 'processing-stopped' 'canceled' 'successful-ok' 'processing-stopped' 'processing-stopped' 'successful-ok' See Rule 1 'completed' 'completed' 'successful-ok-ignored-or-substituted-attributes' 'canceled' 'canceled' '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-598 stopped' job states, the IPP object MUST add the 'processing-to-stop-point' value to the job's "job-state-reasons" 599 attribute and then transition the job to the 'canceled' state when the processing ceases (see [RFC2911] section 600 4.3.8). 601

Access Rights: The authenticated user (see [RFC2911] section 8.3) performing this operation MUST be an 602 operator or administrator of the Printer object (see [RFC2911]Sections 1 and 8.5). Otherwise, the IPP object 603 MUST reject the operation without canceling any jobs and return: 'client-error-not-authorized' status code and 604 MUST NOT return the "job-ids" operation attribute. 605

5.1.1 Cancel-Jobs Request 606

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

Group 1: Operation Attributes 608

Natural Language and Character Set: 609 The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1. 610 611

Target: 612 The "printer-uri" (uri) operation attribute MUST be supplied by the client which defines the target for this 613 operation as described in [RFC2911] section 3.1.5. The client MUST NOT supply and the Printer MUST 614 NOT support the “job-uri” (uri) operation attribute for this operation. 615

Page 23: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 23 of 96

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

Requesting User Name: 623 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the client as described in 624 [RFC2911] section 8.3. 625 626

"message" (text(127)): 627 The client OPTIONALLY supplies this attribute. The Printer object OPTIONALLY supports this attribute. It 628 is a message to the operator. This "message" attribute is not the same as the "job-message-from-629 operator" attribute. That attribute is used to report a message from the operator to the end user that 630 queries that attribute. This "message" operation attribute is used to send a message from the client to the 631 operator along with the operation request. It is an implementation decision of how or where to display this 632 message to the operator (if at all). 633 634

5.1.2 Cancel-Jobs Response 635

The following sets of attributes are part of the Cancel-Jobs Response: 636

Group 1: Operation Attributes 637

Status Message: 638 In addition to the REQUIRED status code returned in every response, the response OPTIONALLY 639 includes a "status-message" (text(255)) and/or a "detailed-status-message" (text(MAX)) operation attribute 640 as described in [RFC2911] sections 13 and 3.1.6. 641 642

Natural Language and Character Set: 643 The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 644 3.1.4.2. 645 646

Group 2: Unsupported Attributes 647

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

653

5.2 Cancel-My-Jobs operation 654

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

Comment [th8]: ISSUE: OK to add "REQUIRED" here? Yes

Page 24: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 24 of 96

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 661 completed, canceled, or aborted. Since a specified Job might already be printing by the time a Cancel-My-Jobs 662 operation is received, some media sheet pages might be printed before the job is actually terminated. 663

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

Access Rights: If the client supplied the "job-ids" attribute, the authenticated user (see [RFC2911] section 8.3) 674 performing this operation MUST be the job owner of all the candidate jobs. If any of the supplied "job-ids" specify 675 jobs that do not belong to the requesting user, the IPP object MUST (1) reject the operation without canceling any 676 jobs, (2) return: 'client-error-not-authorized', and (3) MUST return the "job-ids" operation attribute with any specified 677 jobs that are not owned by the requesting user (see section 5.2.2 below). 678

5.2.1 Cancel-My-Jobs Request 679

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

Group 1: Operation Attributes 681

Natural Language and Character Set: 682 The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1. 683 684

Target: 685 The "printer-uri" (uri) operation attribute MUST be supplied by the client which defines the target for this 686 operation as described in [RFC2911] section 3.1.5. The client MUST NOT supply and the Printer MUST 687 NOT support the “job-uri” (uri) operation attribute for this operation. 688 689 The “job-ids” (1setOf integer(1:MAX)) MAY be supplied by the client in the request to explicitly indicate the 690 “job-id” values of the candidate jobs to be canceled. If the "job-ids" attribute is not supplied, the Printer 691 MUST consider all jobs that are both (1) owned by the requesting user AND (2) are cancelable according 692 to Table 3 above as the candidate jobs and cancel them all. The client MUST be able to supply this 693 attribute in order to claim conformance to this operation. The Printer MUST support this attribute with a 694 list of “job-id” values. 695 696

Requesting User Name: 697 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the client as described in 698 [RFC2911] section 8.3. 699 700

"message" (text(127)): 701 The client OPTIONALLY supplies this attribute. The Printer object OPTIONALLY supports this attribute. It 702 is a message to the operator. This "message" attribute is not the same as the "job-message-from-703 operator" attribute. That attribute is used to report a message from the operator to the end user that 704 queries that attribute. This "message" operation attribute is used to send a message from the client to the 705 operator along with the operation request. It is an implementation decision of how or where to display this 706 message to the operator (if at all). 707 708

Page 25: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 25 of 96

5.2.2 Cancel-My-Jobs Response 709

The following sets of attributes are part of the Cancel-My-Jobs Response: 710

Group 1: Operation Attributes 711

Status Message: 712 In addition to the REQUIRED status code returned in every response, the response OPTIONALLY 713 includes a "status-message" (text(255)) and/or a "detailed-status-message" (text(MAX)) operation attribute 714 as described in [RFC2911] sections 13 and 3.1.6. 715 716

Natural Language and Character Set: 717 The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 718 3.1.4.2. 719 720

Group 2: Unsupported Attributes 721

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

727

5.3 Close-Job Operation 728

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

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

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

5.3.1 Close-Job Request 741

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

Group 1: Operation Attributes 743

Natural Language and Character Set: 744 The "attributes-charset" and "attributes-natural-language" attributes as described in [RFC2911] section 745 3.1.4.1. 746 747

Comment [th9]: ISSUE: OK to add "REQUIRED" here? Yes

Page 26: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 26 of 96

Target: 748 The "printer-uri" (uri) plus "job-id" (integer(1:MAX)) which define the target for this operation as described 749 in [RFC2911] section 3.1.5. The client MUST NOT supply and the Printer MUST NOT support the “job-uri” 750 (uri) operation attribute for this operation. 751 752

Requesting User Name: 753 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the client as described in 754 [RFC2911] section 8.3. 755

756

5.3.2 Close-Job Response 757

The following attributes are part of the Close-Job Response: 758

Group 1: Operation Attributes 759

Status Message: 760 In addition to the REQUIRED status code returned in every response, the response OPTIONALLY 761 includes a "status-message" (text(255)) and/or a "detailed-status-message" (text(MAX)) operation attribute 762 as described in [RFC2911] sections 13 and 3.1.6. 763 764

Natural Language and Character Set: 765 The "attributes-charset" and "attributes-natural-language" attributes as described in section [RFC2911] 766 3.1.4.2. 767 768

Group 2: Unsupported Attributes 769

See [RFC2911] section 3.1.7 for details on returning Unsupported Attributes. 770

Group 3: Job Object Attributes 771

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

773

5.4 Resubmit-Job Operation 774

The REQUIRED Resubmit-Job operation allows a client to start a copy of a Retained Job that is retained in the 775 queue after processing has completed (see [RFC2911] section 4.3.7.2) supply changes to attributes that were 776 supplied in the original jobs and to supply additional attributes for that copy before starting. A client MUST be 777 able to supply and a Printer MUST support this operation in order to claim support of this Job and Printer 778 Extensions - Set 2 Specification, respectively 779

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

If the Retained Job already contain the same operation or Job Template attribute with a different value, the value 786 supplied in the Resubmit-Job operation MUST override (if supported by the Printer). If the Retained Job does not 787 contain such an Operation or Job Template attribute, the value supplied with the Resubmit-Job operation MUST 788 apply (if supported by the Printer). When reprinting a Saved Job, the Printer MUST NOT copy the “job-save-789 disposition” attribute to the copy; otherwise, the job would be saved again. Only if the client supplies the “job-790

Comment [th10]: ISSUE: OK to add "REQUIRED" here? Yes

Page 27: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 27 of 96

save-disposition” attribute in the Resubmit-Job operation will the job be saved again. Similarly, when reprinting a 791 Proof Print Job, the Printer MUST NOT copy the “proof-print” attribute to the job copy; otherwise, the job would be 792 proofed again. Only if the client supplies the “proof-print” attribute in the Resubmit-Job operation will the job be 793 proofed again. 794

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

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

"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 'canceled' 'successful-ok' - A copy of the job is started over. 'canceled' '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

797

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

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

Access Rights: The authenticated user (see [RFC2911] section 8.3) performing this operation must either be the 804 job owner or an operator or administrator of the Printer object (see [RFC2911] Sections 1 and 8.5). Otherwise, the 805 IPP object MUST reject the operation and return: 'client-error-forbidden', 'client-error-not-authenticated', or 'client-806 error-not-authorized' as appropriate. 807

5.4.1 Resubmit-Job Request 808

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

Target: 813 The "printer-uri" (uri) plus "job-id" (integer(1:MAX)) which define the target for this operation as described 814 in [RFC2911] section 3.1.5. The client MUST NOT supply and the Printer MUST NOT support the “job-uri” 815 (uri) operation attribute for this operation. 816

Page 28: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 28 of 96

5.4.2 Resubmit-Job Response 817

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

819

6 New Operation attributes for existing operations 820

This section defines additional Operation attributes for existing IPP operations. 821

6.1 job-password (octetString(255)) for Job Creation operations 822

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

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

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

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

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

6.2 job-password-encryption (type3 keyword | name(MAX)) for Job Creation operations 841

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

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

6.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation 847

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

Page 29: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 29 of 96

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

6.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation 858

The “job-ids” (1setOf integer(1:MAX)) Operation attribute is defined for use with the Purge-Jobs operation (see 859 [RFC2911] Section 3.3.7). If a client or Printer support the Purge-Jobs operation, such a client MUST be able to 860 supply and a Printer MUST support the "job-ids" operation in the Purge-Jobs operation in order to claim support of 861 this Job and Printer Extensions - Set 2 Specification, respectively. See also section 10.2 job-ids-supported 862 (boolean) Printer Description attribute. 863

The “job-ids” Operation attribute, if supplied, specifies a list of target jobs to be purged, rather than all jobs. If this 864 attribute is not supplied, the Printer MUST purge all jobs. 865

7 Job Template Attributes 866

Job Template attributes describe job processing behavior and conform to a set of rules. See [RFC2911] for the 867 complete text of the rules that apply to each Job Template attribute called "xxx". 868

7.1 feed-orientation (type3 keyword) 869

The OPTIONAL "feed-orientation" Job Template attribute specifies the media edge which is fed into the print 870 engine from the paper tray. Long-edge-first is the preferred method of feeding media to attain the fastest printing 871 speed. Certain media will have adverse effects when fed from a certain direction; for instance, some labels will 872 peel off in the paper path when fed long-edge-first, but not when fed short-edge-first. The feed orientation also 873 may allow the job to be finished in more acceptable ways; for instance, a stationary finishing stapler may provide a 874 preferred stapling location when the media is fed short-edge-first. 875

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

Standard keyword values are: 879

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 880 imposition on the media. Although Postscript supports this attribute as a PDL construct, support in other PDLs 881 such as PCL and TIFF are dependent on the implementation. Therefore, this attribute is defined to be specified as 882 a Job Template attribute such that printers may use this feature with PDLs other than Postscript. Some printer 883 implementations may be able to internally determine the best feed orientation to use so that if this attribute was 884 sent over the wire to the printer, the attribute would be ignored. 885

Page 30: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 30 of 96

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

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

7.1.1 feed-orientation-default (type3 keyword) 892

The "feed-orientation-default" (type3 keyword) Printer attribute specifies the default value of "feed-orientation" 893 when not supplied in a request. This default depends upon the media-size being requested and is printer 894 implementation dependent upon how the default value is calculated. 895

7.1.2 feed-orientation-supported (1setOf (type3 keyword)) 896

The "feed-orientation-supported" (1setOf (type3 keyword)) Printer attribute specifies which values of "feed-897 orientation" that the Printer supports. 898

7.2 font-name-requested (name(MAX)) 899

7.2.1 font-name-requested-default (name(MAX)) 900

7.2.2 font-name-requested-supported (1setOf name(MAX)) 901

The OPTIONAL "font-name" Job Template enables an IPP client to specify what default font name the printer 902 MUST use to print a job if the document data is in a format that does not have inherent font information (e.g., 903 ‘text/plain’). For document formats which have inherent font information (such as PostScript), this attribute will be 904 ignored and will NOT override that information. 905

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

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

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

Page 31: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 31 of 96

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

7.3.1 font-size-requested-default (integer (1:MAX)) 923

7.3.2 font-size-requested-supported (1setOf rangeOfInteger (1:MAX)) 924

The OPTIONAL "font-size-requested" Job Template attribute enables an IPP client to specify what default font size 925 the printer MUST use to print a job if the document data is in a format that does not have inherent font information 926 (e.g., ‘text/plain’). For document formats which have inherent font information (such as PostScript), this attribute 927 will be ignored and will NOT override that information. 928

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

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

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

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

7.4 job-delay-output-until (type3 keyword | name(MAX)) 946

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

Standard keyword values for named time periods are: 953

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-

Page 32: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 32 of 96

time"

'day-time' during the day

'evening' evening

'night' night

'weekend' weekend

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

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

954

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

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

A Flow Diagram for Job Creation with the "job-delay-output-until" attribute is shown in Figure 1 below. The 965 semantics of the "job-delay-output-until" attribute are similar to the "job-hold-until" Job Template attribute 966 [RFC2911] (see Table 5 below), except that for the "job-delay-output-until" attribute the job is not put into the 967 'pending-held' state while waiting for the time period to arrive. Instead, the Printer MAY process the job normally, 968 i.e., by putting the job into the 'pending' and 'processing' states. However, the Printer MUST NOT produce any 969 output until the specified time period arrives. If the Printer completes the processing and the specified time period 970 has not yet arrived, the Printer MUST suspend the processing of the job by putting the job in the 'processing-971 stopped' state, and MUST NOT delay processing or output of any other jobs while waiting for the specified time 972 period to arrive. When the time period does arrive, the Printer MUST remove the 'job-delay-output-until-specified' 973 value from the job's "job-state-reasons" attribute and MAY add the 'job-queued' [RFC2911] value to the job's "job-974 state-reasons" attribute. Then the job can be scheduled and processed, i.e., the job enters the 'processing' state 975 and produces the output. 976

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

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

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

initial job states before the specified time period is reached

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

'pending-held'

Page 33: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 33 of 96

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'

7.4.1 job-delay-output-until-default (type3 keyword | name(MAX)) 983

The default value supplied by the Printer if the client omits the ‘job-delay-output-until” Job Template attribute. 984

7.4.2 job-delay-output-until-supported (1setOf type3 keyword | name(MAX)) 985

The values supported by the Printer for the "job-delay-output-until" Job Template attribute. See the values defined 986 for the "job-hold-until" Job Template attribute in [RFC2911]. 987

Page 34: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 34 of 96

988

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

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

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

A Flow Diagram for Job Creation with the "job-delay-output-until-time" attribute is shown in Figure 2 below. A 996 Time Sequence Diagram for a job with "job-hold-until-time", a job with "job-delay-output-until-time", and 4 ordinary 997 print jobs is shown in Figure 4 below. The semantics of the "job-delay-output-until-time" attribute are similar to the 998 "job-hold-until-time" Job Template attribute (see Section 7.6 and Table 6, except that for the "job-delay-output-999

[ 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

Page 35: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 35 of 96

until-time" attribute the job is not put into the 'pending-held' state while waiting for the date and time to occur. 1000 Instead, the Printer MAY process the job normally (i.e., by putting the job into the 'pending' and 'processing' 1001 states). However, the Printer MUST NOT produce any output until the specified date and time occurs. If the 1002 Printer completes the processing and the specified date and time has not yet occurred, the Printer MUST suspend 1003 the processing of the job by putting the job in the 'processing-stopped' state, and MUST NOT delay processing or 1004 output for any other jobs while waiting for the specified date and time to occur. When the date and time does 1005 occur, the Printer MUST remove the 'job-delay-output-until-specified' value from the job's "job-state-reasons" 1006 attribute and MAY add the 'job-queued' [RFC2911] value to the job's "job-state-reasons" attribute. Then the job 1007 can be scheduled and processed, i.e., the job enters the 'processing' state and produces the output. 1008

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

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

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

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

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

initial job states before the specified time is reached

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

'pending-held'

job states when the specified time is reached

'pending', 'processing' 'pending', 'processing'

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

7.5.1 Why there is no job-delay-output-until-time-default attribute 1025

There is no attribute “job-delay-output-until-time-default” because it would either be a fixed date and time in the 1026 future or would have to be updated periodically. Neither seem useful enough to be worth the complexity.. 1027

7.5.2 job-delay-output-until-time-supported (rangeOfInteger(0:MAX)) 1028

A range of integer values of the “job-delay-output-until-time-supported” attribute specifies the span of relative 1029 amount of time in seconds into the future that the printer supports keeping the output from being produced. The 1030 Printer MUST use the time range to validate a job that is submitted with a “job-delay-output-until-time” attribute. 1031

Page 36: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 36 of 96

1032

1033

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

7.6 job-hold-until-time (dateTime) 1035

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

Note: The client application has the choice to present the "job-hold-until-time" to the end user as either a delta time 1038 (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 1039 time is represented using the appropriate time zone(s) (usually the client's time zone, or the Printer's time zone, or 1040 both if the client is capable). See the description of "printer-current-time" in [RFC2911]. 1041

[ "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

Page 37: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 37 of 96

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

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

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

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

2. accepts the request with the 'successful-ok-ignored-or-substituted-attributes', if the client-supplied "ipp-1059 attribute-fidelity" is 'false'. Also, the Printer MUST return the "job-hold-until-time" attribute and the client-1060 supplied value in the Unsupported Attributes group of the operation response. If the "job-hold-until-time" 1061 value is earlier than the "printer-current-time" value plus the minimum value of "job-hold-until-time-1062 supported", the Printer MUST set the value of the Job's "job-hold-until-time" to the current dateTime plus 1063 the minimum time. Also, if the "job-hold-until-time" value is later than the "printer-current-time" value plus 1064 the maximum value of "job-hold-until-time-supported", the Printer MUST set the value of the Job's "job-1065 hold-until-time" to the current dateTime plus the maximum time. 1066

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

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

7.6.1 Why there is no job-hold-until-time-default 1076

There is no attribute "job-hold-until-time-default" because it would either be a fixed time in the future or would have 1077 to be updated periodically. Neither seem useful enough to be worth the complexity. 1078

7.6.2 job-hold-until-time-supported (rangeOfInteger(0:MAX)) 1079

A range of integer values of the "job-hold-until-supported" attribute specifies the span of relative amount of time in 1080 seconds into the future that the printer supports keeping the submitted job in the 'pending-held' state. The Printer 1081 MUST use the time range to validate a job that is submitted with a "job-hold-until-time" attribute. 1082

Page 38: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 38 of 96

1083

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

[ "job-hold-until-time" GT "printer-current-time" ]

[ no hold reasons apply ]

[ "job-hold-until-time" LE "printer-current-time" ]

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

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

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

[ else ]

[ "ipp-fidelity" is TRUE ]

[ "ipp-fidelity" is FALSE ]

Create Job "job-hold-until-time"

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

Reject Request

Change "job-hold-until-time" to a valid value

"job-state" = 'pending'

"job-state" = 'pending-held'

"status-code" = 'successful-ok'

[ other hold reasons apply ]

"job-state-reasons" = 'job-hold-until-specified'

Page 39: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 39 of 96

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

1090

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

7.7 job-phone-number (uri) 1092

The OPTIONAL “job-phone-number” Job Template attribute contains the contact telephone number for the job. If 1093 supported, the Printer MUST accept the ‘tel:’ URI scheme [RFC2806] and MAY accept other schemes, such as the 1094

Job state progression

Jobs pending- held

pending processing (max 2 jobs)

processing-stopped

Produce Output

(max 1 job)

completed

Job 1 "job-delay-output-until-time" = A

Job 2 "job-hold-until-time" = B

Job 3

Job 4

Job 5

hold time B occurs - remove 'job-hold-until-specified'

Job 6

delay time A occurs - remove 'job-delay-output-until-specified'

Start Output

Job State Change state

Time

Key

State duration

Wait for Marker while in 'processing' state ("job-state-reasons" = 'job-queued-for-marker')

Wait for Processor while in 'processing-stopped' state ("job-state-reasons" = 'job-queued')

Produce output

3

4

5

2

1

6

Page 40: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 40 of 96

‘fax:’ scheme [RFC2806]. Any processing by the Printer of the “job-phone-number” attribute is implementation-1095 dependent. 1096

7.7.1 job-phone-number-default (uri) 1097

The default value supplied by the Printer if the client omits the ‘job-phone-number” Job Template attribute. 1098

7.7.2 job-phone-number-supported (boolean) 1099

A true value indicates that the Printer accepts the “job-phone-number” attribute. 1100

7.8 job-recipient-name (name(MAX)) 1101

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

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

7.8.1 job-recipient-name-default (name(MAX)) 1110

The default value supplied by the Printer if the client omits the ‘job-recipient-name” Job Template attribute. 1111

7.8.2 job-recipient-name-supported (boolean) 1112

A true value indicates that the Printer accepts the “job-recipient-name” attribute. 1113

7.9 job-save-disposition (collection) 1114

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

If a Printer object is able to save a Job in a particular document format, the Printer MUST be able to process that 1121 document format for reprint using the Reprocess-Job and Resubmit-Job operations. See section 12.4 1122 Conformance Requirements for the OPTIONAL "job-save-disposition" Job Template attribute for additional 1123 conformance requirements for clients and Printers. 1124

Interaction with "job-hold-until" and "job-hold-until-time": The "job-hold-until" attribute causes the job to be 1125 moved to the ‘pending-held’ state, which prevents processing of the job. The "job-save-disposition" attribute on 1126

Page 41: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 41 of 96

the other hand does not become relevant until the job is moved to the ‘processing’ state. These two attributes can 1127 be used together in the same Job Creation operation with no adverse interactions. 1128

7.9.1 Member Attributes for the "job-save-disposition" Job Template Attribute 1129

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

Table 7 - "job-save-disposition" member attributes 1131

Member Attribute

Name

Attribute Syntax

Request

Printer Support

save-disposition type3 keyword MUST MUST

save-info 1setOf collection MAY MUST

7.9.1.1 save-disposition (type3 keyword) 1132

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

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

When a Saved Job is reprinted using any of the operations that reprint a Retained Job (e.g., Reprocess-Job or 1139 Resubmit-Job), the Printer MUST NOT copy the “job-save-disposition” attribute from the Saved Job to the copy of 1140 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 1141 Resubmit-Job operation supplies its own “save-job-disposition” attribute. 1142

Standard keyword values are: 1143

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

Page 42: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 42 of 96

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

Page 43: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 43 of 96

7.9.1.1.1 save-disposition-supported (1setOf type3 keyword) 1144

The “save-disposition-supported (1setOf type3 keyword)” Printer attribute defines the save dispositions supported 1145 by the Printer for the “save-disposition” member attribute (see standard keyword values in above table). 1146

7.9.1.2 save-info (1setOf collection) 1147

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

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

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

7.9.1.2.1 There is no save-info-default Printer attribute 1163

There is no “save-info-default” Printer attribute. If the client supplies the “job-save-disposition” Job Template 1164 attribute, but omits the “save-info” member attribute, the Printer creates a single collection value for the “save-info” 1165 member attribute using from the Printer’s “save-location-default” and “save-document-format-default” Printer 1166 attributes and the job’s “job-name” attribute (see "save-info" description above). 1167

7.9.1.2.2 save-info-supported (1setOf type2 keyword) 1168

The "save-info-supported (1setOf type2 keyword)" attribute identifies the names of the member attributes 1169 supported in the "save-info" collection attribute, i.e., the names of the member attributes in Table 8 that the Printer 1170 supports. 1171

7.9.1.2.3 Member Attributes for the "save-info" member attribute 1172

The "save-info" collection member attributes are: 1173

Table 8 - "save-info" member attributes 1174

Member Attribute

Name

Attribute Syntax

Request

Printer Support

save-location uri MAY MUST

Page 44: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 44 of 96

save-name name (MAX) MAY MAY

save-document-format

mimeMediaType MAY MUST

7.9.1.2.3.1 save-location (uri) 1175

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

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

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

If the client wants to put the saved job in a sub-directory (whether it exists or not) of one of the directories specified 1195 by the “save-location-supported” Printer attribute, the client supplies that sub-directory name as part of the “save-1196 name” attribute (see "save-name" description below), not as part of the “save-location” member attribute. 1197

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

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

Page 45: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 45 of 96

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

Table 9 - URI Schemes for "save-location" member attribute 1211

URI Scheme

Description

Printer

Support

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

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 [RFC2911] section 3.2.2 Print-URI operation).

MAY

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

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

7.9.1.2.3.1.1 save-location-default (uri) 1218

The “save-location-default (uri)” Printer attribute indicates the value that the Printer supplies, if the client omits the 1219 “save-location” member attribute from the “save-info” member attribute. 1220

7.9.1.2.3.1.2 save-location-supported (1setOf uri) 1221

The “save-location-supported (1setOf uri)” Printer attribute defines a list of URI values supported by the Printer 1222 object for the "save-location" member attribute (see above description). The client MUST supply a value of the 1223 "save-location" member attribute that completely matches one of these values. Note: The administrator can 1224 configure the “save-location-supported” to have separate directories for individuals, groups, projects, or MAY just 1225 have one directory for all saved jobs. Whether or not access control is applied to these directories is 1226 IMPLEMENTATION DEPENDENT. 1227

7.9.1.2.3.2 save-name (name(MAX)) 1228

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

Page 46: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 46 of 96

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

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

7.9.1.2.3.2.1 There is no “save-name-default” Printer attribute 1244

There is no “save-name-default”. If the client omits the “save-name” member attribute when supplying the “save-1245 info” member attribute, the Printer uses the job’s “job-name” attribute as the value of the “save-name” attribute 1246 (described above). 1247

7.9.1.2.3.2.2 save-name-supported (boolean) 1248

The “save-name-supported (boolean)” attribute indicates support for the OPTIONAL "save-name" member 1249 attribute of the "save-info" member attribute. Note: The means to query the Printer to see what saved jobs it has 1250 is a potential future extension. 1251

7.9.1.2.3.2.3 save-name-subdirectory-supported (boolean) 1252

The “save-name-subdirectory-supported” (boolean) Printer Description attribute indicates whether the Printer 1253 supports a FORWARD SLASH (“/”) character in the “save-name” (name(MAX)) member attribute. If the value is 1254 ‘false’ and the client supplies a FORWARD-SLASH (“/”) in the “save-name” value, the Printer MUST reject the 1255 request and return the ‘client-error-attributes-or-values-not-supported’. 1256

7.9.1.2.3.3 save-document-format (mimeMediaType) 1257

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

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

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

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

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

If the saved job is submitted to a different make-and-model printer that supports the same document-format (i.e., 1273 the same value of the “document-format” operation attribute in the Document Creation request), then the Printer 1274

Page 47: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 47 of 96

MUST be able to print the job, but the output cannot be guaranteed to appear exactly the same as the original 1275 output. 1276

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. I

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 1277 section 12.4.2.1. 1278

7.9.1.2.3.3.1 save-document-format-default (mimeMediaType) 1279

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

7.9.1.2.3.3.2 save-document-format-supported (1setOf mimeMediaType) 1283

The "save-document-format-supported" (1setOf mimeMediaType) attribute specifies the document formats which 1284 a Printer supports for saving jobs. 1285

If a Printer supports this Job Save & Reprint Feature, the Printer SHOULD be able to Reprint using the Resubmit-1286 Job operation (see Section 4.3.1.2) for all the formats in which it is capable of saving jobs, i.e., the 1287 mimeMediaType values of the Printer’s “document-format-supported” Printer Description attribute SHOULD be a 1288 superset of the values of the Printer’s “save-document-format-supported” attribute. For example, if a Printer 1289 supports the ‘application/X-single-page-tiff’ format for saving jobs, it SHOULD also accept and support a Resubmit-1290 Job operation to reprint that job. 1291

7.9.1.2.3.4 Printer actions for various combinations of attributes 1292

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

The possible Printer actions are (see above descriptions of "save-location" and "save-name" for details): 1296

1. reject: The Printer rejects the Job Creation request, returns the ‘client-error-attributes-or-values-not-1297 supported’ status code and the “job-save-disposition” attribute and value in the Unsupported Attributes 1298 group. 1299

2. accept-save: The Printer accepts the Job Creation request, returns the ‘successful-ok’ status code, and 1300 attempts to create all necessary files and sub-directories. 1301

Page 48: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 48 of 96

3. accept-substitute: The Printer accepts the Job Creation request, returns the ‘successful-ok-ignored-or-1302 substituted-attributes’ status code and the “job-save-disposition” attribute and value in the Unsupported 1303 Attributes group, and, DEPENDING ON IMPLEMENTATION: (1) ignores the attribute and does not 1304 perform the save, (2) puts the job in the ‘held’ state and let the operator fix the problem, either by changing 1305 the job’s “save-location” attribute value or adding the value to the Printer’s “save-location-supported” 1306 attribute, or (3) substitutes the job’s “save-location” value with one of the values of the Printer’s “save-1307 location-supported” values. 1308

4. accept-hold: The Printer accepts the Job Creation request, returns the ‘successful-ok’ status code, and 1309 holds the job for the operator to resolve the conflict so that the job can be saved. 1310

Table 10 shows the Printer actions for the various possible value combinations of the other Job and Printer 1311 attributes. In the example, there is already one saved job: ‘a/bar’. The Printer supports three save-location 1312 directories: a, b, c. 1313

Table 10 - Printer actions for various Job and Printer attribute values 1314

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 d foo a, b, c a/bar F none accept-substitute d foo a, b, c a/bar T none reject a/d foo a, b, c a/bar F none accept-substitute a/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

7.9.2 job-save-disposition-default (collection) 1315

The "job-save-disposition-default (collection)" attribute specifies the “job-save-disposition” member attributes and 1316 values that the Printer will provide, if any, if the client omits the "job-save-disposition" collection attribute. A 1317 Printer MUST support the same member attributes for these default attributes as it supports for the corresponding 1318 Job Template attributes (see Table 7). 1319

The "save-info" (1setOf collection) member attribute of the “job-save-disposition-default” Printer attribute specifies 1320 the save information member attributes and values that the Printer will provide, if any, if the client omits the “job-1321 save-disposition” Job Template attribute entirely. A Printer MUST support the same member attributes for these 1322 default attributes as it supports for the corresponding Job Template attributes (see Table 7 and Table 8), with the 1323 single exception, that the “save-name” member attribute MUST NOT be supported (since the Printer MUST use 1324 the “job-name” attribute to generate the default “save-name”). 1325

If the client supplies the “job-save-disposition” Job Template attribute, but omits the “save-info” member attribute, 1326 the Printer uses its “save-location-default” and “save-disposition-default” Printer attributes and the job’s “job-name” 1327

Page 49: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 49 of 96

attribute to create the job’s “save-info” member attribute, rather than using the “save-info” member attribute of the 1328 Printer’s “job-save-disposition-default” attribute (see "save-info" description above). 1329

7.9.3 job-save-disposition-supported (1setOf type2 keyword) 1330

The "job-save-disposition-supported (1setOf type2 keyword)" attribute identifies the names of the member 1331 attributes supported in the "job-save-disposition" collection attribute, i.e., the names of the member attributes in 1332 Table 7 that the Printer supports. The RECOMMENDED way for a client to determine whether or not a Printer 1333 support saving jobs, is to query this Printer attribute. 1334

7.10 pdl-init-file (1setOf collection) 1335

The OPTIONAL "pdl-init-file" Job Template attribute controls initialization of the Printer’s Page Description 1336 Language (PDL) interpreter. This attribute specifies the files that the Printer uses to initialize the PDL interpreter 1337 before it starts interpreting each Input Document (i.e. file) in a Job with one exception. When the value of 1338 "multiple-document-handling" is 'single-document' or ‘single-document-new-sheet’, a PDL interpreter processes all 1339 of the Input-Documents of a Job as if the Input Documents were a single file. In this case, the PDL interpreter is 1340 initialized just before processing the first Input Document only. 1341

Some PDLs (i.e. PostScript and HP PCL) have the ability to define reusable macros, code fragments, fonts, and 1342 other resources. These components may reside either within the body of the document file to be printed or within 1343 files that can be sent to the Printer’s PDL interpreter separately. Having the ability to send these “pre-initialization” 1344 (prep) files separately from the main body of the job to be printed, enables an application to “pre-condition” the 1345 PDL interpreter with these definitions ahead of time. This in turn makes it possible to reduce the size of a given 1346 document data file to be printed and to reuse the components on other jobs. 1347

The exact mechanism by which an initialization file (or list of initialization files) is installed on the Printer is 1348 implementation dependent and outside of the current scope of IPP. 1349

Upon receipt of the "pdl-init-file" collection attribute(s) the Printer will send the initialization file (or list of files) 1350 referenced to the Printer’s PDL interpreter for processing BEFORE starting to process the document(s) attached to 1351 the job (in the Print-Job request) or referenced by the job (in the Print-URI request). 1352

If the Printer receives more than one "pdl-init-file" collection in a given print request, then the list of initialization 1353 files will be sent to the Printer’s PDL interpreter in the order that they are encountered in the Job Template 1354 attributes. 1355

7.10.1 Member Attributes for the "pdl-init-file" Job Template Attribute 1356

Table 11 lists the member attributes of the "pdl-init-file" Job Template attribute and specifies whether Clients 1357 MUST supply them in collection values and whether Printers MUST support them if supporting this collection 1358 attribute. The following sub-sections define these member attributes. 1359

Table 11 - "pdl-init-file" member attributes 1360

Member Attribute

Name

Attribute Syntax

Request

Printer Support

pdl-init-file-location uri MAY MUST

Page 50: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 50 of 96

pdl-init-file-name name(MAX) MUST MUST

pdl-init-file-entry name(MAX) MAY MAY

7.10.1.1 pdl-init-file-location (uri) 1361

This member attribute must be an Absolute URI [RFC 2396] that specifies the path to the directory where the 1362 initialization file to be sent to the Printer’s PDL interpreter will be found. According to RFC 2396, an Absolute URI 1363 MUST have a URI scheme, MAY have an authority (host name) component, and MUST have an absolute path 1364 (e.g., ‘ftp://printhost.printco.com/var/spool/jobinitfiledir/initfile1’ or ‘file:///jobinitfiledir/initfile1’). 1365

7.10.1.1.1 pdl-init-file-location-supported (1setOf uri) 1366

The "pdl-init-file-location-supported (1setOf uri)" Printer attribute specifies the path(s) to the directory (directories) 1367 of the supported initialization file(s) that the client MAY ask the Printer to send to its PDL interpreter prior to 1368 processing the document. 1369

7.10.1.2 pdl-init-file-name (name(MAX)) 1370

This member attribute specifies the name of the initialization file within the directory specified by the "pdl-init-file-1371 location" member attribute that the Printer MUST send to its PDL interpreter prior to processing the document. 1372 The “pdl-init-file-subdirectory-supported” Printer Description attribute indicates whether or not the Printer supports 1373 a FORWARD-SLASH (“/”) in the “pdl-init-file-name” value. Whether the FORWARD SLASH when supported is 1374 actually implemented as a sub-directory is IMPLEMENTATION DEPENDENT. 1375

A well-formed request MUST include at least the name of the initialization file to be used (i.e. the "pdl-init-file-1376 location" or directory containing the initialization file need not be supplied by the client and in fact, might not be 1377 known to the client). The client can supply a "pdl-init-file-name" attribute value that is either a simple file name or 1378 a relative path where each component of the path is separated by a FORWARD SLASH (“/”) character. The "pdl-1379 init-file-name" member attribute value concatenated with the “pdl-init-file-location” attribute value (supplying a “/” 1380 between them, if necessary) specifies the initialization file to be used. For example, if “pdl-init-file-location” is ‘a/b’ 1381 or ‘a/b/’ and "pdl-init-file-name" is ‘c/d’, the resulting file path is: ‘a/b/c/d’. 1382

7.10.1.2.1 pdl-init-file-name-supported (1setOf name(MAX)) 1383

The "pdl-init-file-name-supported (1setOf name(MAX))" Printer attribute specifies the name(s) of the supported 1384 initialization file(s) that the client MAY ask the Printer to send to its PDL interpreter prior to processing the 1385 document. 1386

7.10.1.2.2 pdl-init-file-name-subdirectory-supported (boolean) 1387

The “pdl-init-file-name-subdirectory-supported” (boolean) Printer Description attribute indicates whether or not the 1388 Printer will accept a FORWARD SLASH (“/”) character in the value of the “pdl-init-file-name” member attribute. If 1389 the value is ‘false’ and the client supplies a FORWARD-SLASH (“/”) in the “save-name” value, the Printer MUST 1390 reject the request and return the ‘client-error-attributes-or-values-not-supported’. 1391

Page 51: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 51 of 96

7.10.1.3 pdl-init-file-entry (name(MAX)) 1392

This member attribute is an optional member of the collection that if present specifies an entry point within the init 1393 file that the PDL interpreter starts at. 1394

7.10.1.3.1 pdl-init-file-entry-supported (1setOf name(MAX)) 1395

The "pdl-init-file-entry-supported (1setOf name(MAX))" Printer attribute specifies the name(s) of the supported 1396 initialization file(s) that the client MAY ask the Printer to send to its PDL interpreter prior to processing the 1397 document. 1398

7.10.2 pdl-init-file-default (1setOf collection) 1399

pdl-init-file-default (1setOf collection): The "pdl-init-file-default" Printer attribute collection specifies the default 1400 initialization file (or list of files) and related information that the Printer will use if the client omits the "pdl-init-file" 1401 Job Template attribute in a Job Creation operation. The member attributes are defined in Table 11. A Printer 1402 MUST support the same member attributes and values for this default collection attribute as it supports for the 1403 corresponding "pdl-init-file" Job Template attribute. 1404

A "pdl-init-file-name" within "pdl-init-file-default" collection with a “0 length value” will be used to indicate that 1405 Printer has no default initialization file (see description of “none” values in Section 2.7 in [PWG5100.3]). 1406

7.10.3 pdl-init-file-supported (1setOf type2 keyword) 1407

pdl-init-file-supported (1setOf type2 keyword): The "pdl-init-file-supported" Printer attribute identifies the 1408 keyword names of the member attributes supported in the "pdl-init-file" collection Job Template attribute, i.e., the 1409 keyword names of the member attributes in Table 11 that the Printer supports. 1410

7.11 proof-print (collection) REQUIRED Job Template attribute 1411

The REQUIRED "proof-print" Job Template attribute allows a user to specify the attributes of the proof print(s) of 1412 the job that are to be printed prior to the printing the full run of the job. After the proof prints have been produced, 1413 the Printer MUST retain the completed job as a Proof Print Job for a period of time sufficient to allow users to 1414 proof the job, rather than aging it out after an implementation-defined period which SHOULD be longer than the 1415 period for ordinary completed jobs (see Job Retention phase in [RFC2911] section 4.3.7.2 Partitioning of Job 1416 States). When a Proof Print Job is reprinted using any of the operations that reprint a Retained Job (e.g., 1417 Reprocess-Job or Resubmit-Job), the Printer MUST NOT copy the “proof-print” attribute from the Proof Print Job 1418 to the copy of the Proof Print Job so that the job is not re-proofed again. Only if the Resubmit-Job operation 1419 supplies its own “proof-print” attribute, will the copied job be proofed. . 1420

A client MUST be able to supply and a Printer MUST support this attribute in order to claim support of this Job and 1421 Printer Extensions - Set 2 Specification, respectively. See section 12.5 Conformance Requirements for the 1422 REQUIRED "proof-print" Job Template attribute for additional conformance requirements for clients and Printer. 1423

7.11.1 Member Attributes for the "proof-print" Job Template Attribute 1424

Table 12 lists the member attributes of the "job-sheets-col" collection attribute: 1425

Comment [th11]: ISSUE: to add "REQUIEDT Job Template attribute" to title, since most Job Template attributes are OPTIONAL?

Page 52: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 52 of 96

Table 12 - "proof-print" member attributes 1426

Member Attribute

Name

Attribute Syntax

Request

Printer Support

proof-print-copies integer (0:MAX) MUST MUST

media type3 keyword | name(MAX)

MUST

media-col collection

MUST be one or the other, but NOT both

MAY

7.11.1.1 proof-print-copies (integer (0:MAX)) 1427

The "proof-print-copies" member attribute specifies the number of copies the Printer MUST produce in the proof 1428 job. The proof print(s) are produced using the Job Template attributes specified with the Job, except any 1429 overridden by member attributes in this collection. 1430

If the "proof-print-copies" value is 0, then no proof prints are produced. 1431

After the requested number of proof prints have been successfully produced by the Printer, then the Printer 1432 transitions the job to the ‘completed’ state and retains the job for a period of time that is long enough for the users 1433 to proof the output of the Proof Print Job, rather than aging the job out. 1434

7.11.1.2 media (type3 keyword | name(MAX)) or media-col (collection) 1435

Either the "media" (see [RFC2911]) or the "media-col" member attribute is used to indicate the media that the 1436 Printer MUST use for the specified "proof-print-copies" of the Proof Job. The member attributes are the same as 1437 those for the "media-col" attribute defined in [PWG5100.3] and in section 11.5 of this specification. 1438

The client MUST supply either the "media" or the "media-col" member attribute, but NOT both. If the client 1439 supplies such a malformed request by supplying neither or both, the Printer MUST (depending on implementation) 1440 either (1) reject the request and return the 'client-error-bad-request' status code (see [RFC2911]) or (2) use either 1441 the "media" or the "media-col" member attribute, independent of the value of the "ipp-attribute-fidelity" attribute 1442 supplied by the client. 1443

Since this "media" member attribute has the same name as the "media" Job Template attribute (defined 1444 [RFC2911]), the "media-supported" (1setOf (type3 keyword | name(MAX))) Printer attribute identifies the values of 1445 this "media" member attribute (as well as the values of the "media" Job Template attribute) that the Printer 1446 supports, i.e., the names of the supported media. A value that is provided for the "media" member attribute in the 1447 collection would have the same effect as if the job were submitted with that value as the value of the "media" Job 1448 Template attribute. 1449

Since this "media-col" member attribute has the same name as the "media-col" Job Template attribute (defined in 1450 [PWG5100.3] and in section 11.5 of this specification), the "media-col-supported" Printer attribute identifies the 1451 keyword names of the member attributes supported in this "media-col" member attribute (as well as the keyword 1452 names of the "media-col" Job Template attribute), i.e., the names of the member attributes that the Printer 1453 supports. 1454

Page 53: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 53 of 96

7.11.2 proof-print-default (collection) 1455

The "proof-print-default" (collection) Printer attribute specifies the default value of "proof-print" MUST use when 1456 not supplied in a request. A Printer MUST support the same member attributes for this default collection as it 1457 supports for the corresponding "proof-print" Job Template attribute. 1458

7.11.3 proof-print-supported (1setOf type2 keyword) 1459

The "proof-print-supported" (1setOf (type2 keyword)) Printer attribute specifies which member attributes of "proof-1460 print" that the Printer supports. 1461

8 Additional semantics for existing operations 1462

This section adds additional semantics to the following existing operations that are defined in other documents: 1463

1. Hold-Job operation ([RFC2911] Section 3.3.5) 1464

2. Set-Job-Attributes operation ([RFC3380] 4.2) 1465

8.1 Additional attribute for use with the Hold-Job operation 1466

The following Job Template attribute MAY also be supported as Group 1 Operation attributes in the OPTIONAL 1467 Hold-Job operation (along with the "job-hold-until" (type3 keyword | name(MAX)) as defined in [RFC2911] sections 1468 3.3.5 and 3.3.5.1): 1469

1. "job-hold-until-time" (dateTime) - see section 7.6 1470

If the client does not supply either the "job-hold-until" or the "job-hold-until-time" Operation attributes in the 1471 request, the IPP object MUST populate the job object with a "job-hold-until" attribute with the 'indefinite' value (if 1472 IPP object supports the "job-hold-until" attribute) and hold the job indefinitely, until a client performs a Release-Job 1473 ([RFC2911] section 3.3.6) or Set-Job-Attributes (see section 8.2 below) operation. 1474

8.1.1 job-hold-until-time (dateTime) operation attribute in a Hold Job operation 1475

If supplied and supported as specified in the Printer's "job-hold-until-time-supported" attribute, the IPP 1476 object MUST copy the supplied operation attribute to the Job object, replacing the job's previous "job-hold-1477 until" or "job-hold-until-time" attribute, if present, MUST add the 'job-hold-until-specified' value to the job's 1478 "job-state-reasons" attribute, and MUST make the job a candidate for scheduling after the specified date-1479 time. 1480

If the client (1) supplies a value that specifies a date-time that has already occurred and (2) the IPP object 1481 supports the "job-hold-until-time" operation attribute, the IPP object MUST accept the request, MUST 1482 remove the 'job-hold-until-specified' value from the job's "job-state-reasons" attribute, if present. If there 1483 are no other reasons to hold the job, the IPP object MUST make the job be a candidate for processing 1484 immediately (see [RFC2911] Section 4.2.2). 1485

If supplied, but either the "job-hold-until-time" Operation attribute itself or the value supplied is not 1486 supported, i.e., is out of range, the IPP object MUST accept the request, MUST add the "job-hold-until" = 1487 'indefinite' attribute, MUST add the 'job-hold-until-specified' value to the job's "job-state-reasons" attribute, 1488 MUST return the unsupported attribute or value in the Unsupported Attributes Group according to 1489

Page 54: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 54 of 96

[RFC2911] section 3.1.2, MUST return the 'successful-ok-ignored-or-substituted-attributes, and MUST hold 1490 the job indefinitely until a client performs a subsequent Release-Job operation. 1491

8.2 Additional attributes for use with the Set-Job-Attributes operation 1492

The following Job Template attributes MAY be settable using the Set-Job-Attributes operation ([RFC3380]Section 1493 4.2), in which case they MUST be so indicated as values returned by the Printer's "job-settable-attributes-1494 supported" attribute ([RFC3380] section 6.2): 1495

1. "job-delay-output-until" (type3 keyword | name(MAX)) - see section 7.4 1496

2. "job-delay-output-until-time" (dateTime) - see section 7.5. 1497

3. "job-hold-until" (type3 keyword | name(MAX)) - see [RFC2911] section 4.2.2. 1498

4. "job-hold-until-time" (dateTime) - see section 7.6 1499

8.2.1 job-delay-output-until (type3 keyword | name(MAX)) and job-delay-output-until-1500 time" (dateTime) operation attributes in a Set-Job operation 1501

If either the "job-delay-output-until" or the "job-delay-output-until-time" operation attribute is supplied in the 1502 Set-Job-Attributes operation and supported as specified in the Printer's "job-settable-attributes-supported" 1503 attribute ([RFC3380] section 6.2), the IPP object MUST copy the supplied operation attribute to the Job 1504 object, replacing the job's previous "job-delay-output-until" or "job-delay-output-until-time" attribute, if 1505 present, MUST add the 'job-delay-output-until-specified' value to the job's "job-state-reasons" attribute, and 1506 MUST make the job a candidate for scheduling after the specified date-time. 1507

The "job-delay-output-until" and "job-delay-output-until-time" attributes are mutually exclusive. If one is set 1508 on the job and the other is supplied in a Set-Job-Attributes operation, the one supplied replaces the other 1509 on the job. Furthermore, as with Job Creation operations, a client MUST NOT supply both a "job-delay-1510 output-until" and a "job-delay-output-until-time" attribute in the same Set-Job-Attributes request. If a client 1511 does supply such a malformed request, the Printer MUST reject the request and return the 'client-error-1512 conflicting-attributes' status code [RFC2911]. 1513

If the client (1) supplies a value that specifies a period or date-time that has already occurred and (2) the 1514 IPP object supports the "job-delay-output-until" or "job-delay-output-until-time" operation attribute, 1515 respecively, the IPP object MUST accept the request, MUST remove the 'job-delay-output-until-specified' 1516 value from the job's "job-state-reasons" attribute, if present. If there are no other reasons to hold the job, 1517 the IPP object MUST make the job be a candidate for processing immediately (see [RFC2911] Section 1518 4.2.2). 1519

If supplied, but either the "job-delay-output-until" or the "job-delay-output-until-time" operation attribute 1520 itself or the value supplied is not supported, i.e., is out of range, the IPP object MUST accept the request, 1521 MUST add the "job-delay-output-until" = 'indefinite' attribute, MUST add the 'job-delay-output-until-1522 specified' value to the job's "job-state-reasons" attribute, MUST return the unsupported attribute or value in 1523 the Unsupported Attributes Group according to [RFC2911] section 3.1.2, MUST return the 'successful-ok-1524 ignored-or-substituted-attributes, and MUST hold the job indefinitely until a client performs a subsequent 1525 Release-Job operation. 1526

Page 55: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 55 of 96

8.2.2 job-hold-until" (type3 keyword | name(MAX)) and job-hold-until-time (dateTime) 1527 operation attributes in a Set-Job-Attributes operation 1528

If either the "job-hold-until" or the "job-hold-until-time" operation attribute is supplied in the Set-Job-1529 Attributes operation and supported as specified in the Printer's "job-settable-attributes-supported" attribute 1530 ([RFC3380] section 6.2), the IPP object MUST copy the supplied operation attribute to the Job object, 1531 replacing the job's previous "job-hold-until" or "job-hold-until-time" attribute, if present, MUST add the 'job-1532 hold-until-specified' value to the job's "job-state-reasons" attribute, and MUST make the job a candidate for 1533 scheduling after the specified date-time. 1534

The "job-hold-until" and "job-hold-until-time" attributes are mutually exclusive. If one is set on the job and 1535 the other is supplied in a Set-Job-Attributes operation, the one supplied replaces the other on the job. 1536 Furthermore, as with Job Creation operations, a client MUST NOT supply both a "job-hold-until" and a 1537 "job-hold-until-time" attribute in the same Set-Job-Attributes request. If a client does supply such a 1538 malformed request, the Printer MUST reject the request and return the 'client-error-conflicting-attributes' 1539 status code [RFC2911]. 1540

If the client (1) supplies a value that specifies a period or date-time that has already occurred and (2) the 1541 IPP object supports the "job-hold-until" or "job-hold-until-time" operation attribute, respectively, the IPP 1542 object MUST accept the request, MUST remove the 'job-hold-until-specified' value from the job's "job-1543 state-reasons" attribute, if present. If there are no other reasons to hold the job, the IPP object MUST 1544 make the job be a candidate for processing immediately (see [RFC2911] Section 4.2.2). 1545

If supplied, but either the "job-hold-until" or "job-hold-until-time" operation attribute itself or the value 1546 supplied is not supported, i.e., is out of range, the IPP object MUST accept the request, MUST add the 1547 "job-hold-until" = 'indefinite' attribute, MUST add the 'job-hold-until-specified' value to the job's "job-state-1548 reasons" attribute, MUST return the unsupported attribute or value in the Unsupported Attributes Group 1549 according to [RFC2911] section 3.1.2, MUST return the 'successful-ok-ignored-or-substituted-attributes, 1550 and MUST hold the job indefinitely until a client performs a subsequent Release-Job operation. 1551

9 Job Description Attributes 1552

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

This attribute identifies the make and model of the output device which saved this job. The values are the same 1554 as the corresponding "printer-make-and-model" Printer Description attribute (see "printer-make-and-model" 1555 description in [RFC2911]). If this attribute is present in the saved Job, then only Printers that have the same make 1556 and model will be able to print the saved job with identical appearance. Other make and models MAY be able to 1557 print the job, but not necessarily with identical appearance, provided that the Printer supports the “save-document-1558 format” value of the saved job. If this attribute is not present in the saved Job Instructions and the Job object after 1559 saving, then the saved job was saved in a format that can be printed on any output device and will generate the 1560 same appearance provided that the Printer supports the “save-document-format” value of the saved job. 1561

If the printer implementation supports the "job-save-disposition" Job Template attribute in section 7.9, then it is 1562 REQUIRED that the printer support the "printer-make-and-model" Printer Description attribute. 1563

Page 56: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 56 of 96

10 Printer Description Attributes 1564

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

This OPTIONAL extension enables an IPP client to query the printer for the set of job attributes that can be set by 1566 the client during a Create-Job, Print-Job, Validate-Job, or Print-URI operation. 1567

This extension allows the IPP client to dynamically determine all the job attributes that it can specify at the time of 1568 job creation. 1569

The list of attribute names in “job-creation-attributes-supported” MUST include: 1570

all Job Template attributes that may be supplied by the client at the job level 1571

all operation attributes that are written to the job object as job description attributes (e.g., 1572 "job-name") at the job level 1573

The list of attribute names in “job-creation-attributes-supported” MUST NOT include: 1574

collection member attribute names 1575

Note: The client can determine which member attributes of “xxx” collection attributes are 1576 supported by querying the “xxx-supported” Printer attribute (see [RFC3382]). 1577

operation attributes that are not job attributes 1578

NOTE: The only mechanism previously available for a IPP client to query the Printer for supported attributes is to 1579 specify the ‘job-template’ group value on a Get-Printer-Attributes operation. This has been problematic because: 1580 1) it returns the entire list of “xxx-default” and “xxx-supported” attributes and values which will be excessively 1581 burdensome for production printing systems with extensive functionality, and 2) it does not include operation 1582 attributes that are written to the job object as job description attributes (i.e., "job-name"). [NOTE: See also the 1583 description of the Get-Printer-Attributes operation in [RFC2911] and the distinction between "xxx-default", "xxx-1584 ready", and "xxx-supported" attributes when "xxx" is any Job Template attribute that a client can supply as a top-1585 level attribute vs. (see [RFC3382]) when "xxx" is a member attribute for a Job Template 'collection' attribute (e.g. 1586 The "media-color-supported" Printer attribute lists the values of the “media-color” member attribute of the “media-1587 col” collection attribute, but does not belong to the 'job-template' attribute group, or to the ‘printer-description’ 1588 attribute group).] 1589

10.2 job-ids-supported (boolean) 1590

The “job-ids-supported” (boolean) Printer Description attributes indicates whether the Printer supports the “job-ids” 1591 Operation in the following existing operations: Purge-Jobs (if supported), and Get-Jobs. A Printer MUST support 1592 the "job-ids-supported " Printer Description attribute in order to claim support of this Job and Printer Extensions - 1593 Set 2 Specification. 1594

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

The "job-password-supported" attribute indicates the maximum length that the Printer will accept for the 1596 unencrypted password which the client will encrypt as the value of the "job-password" Operation Attribute. A 1597 conforming Printer MUST be able to accept 255 octets without truncation. However, a Printer MAY be 1598

Page 57: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 57 of 96

implemented as a gateway to another print system that cannot accept the full 255-octet range, in which case the 1599 client MUST NOT allow an unencrypted password greater than the length specified by this attribute. 1600

10.4 job-password-encryption-supported (1setOf (type3 keyword | name(MAX))) 1601

The "job-password-encryption-supported" Printer Description attribute specifies which encryption methods the 1602 Printer supports for Secure Print. 1603

If the operation attribute "job-password" is supported, then this attribute MUST be supported . 1604

Standard keyword values are: 1605

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.

'md4' The encryption method uses the MD4 hash algorithm defined in RFC 1320.

'md5' The encryption method uses the MD5 hash algorithm defined in RFC 1321.

'sha' The encryption method uses the Secure Hash Algorithm defined by the National Institute of Standards and Technology.

10.5 job-spooling-supported (type2 keyword) 1606

This attribute indicates whether or not jobs are spooled before the document data is interpreted (RIPped). In other 1607 words, this attribute indicates when jobs are processed by the Printer with respect to when the Printer receives and 1608 returns responses to Job Creation requests (i.e., Print-Job, Print-URI), receives and returns responses to 1609 Document Creation requests (i.e., Send-Document and Send-Uri requests) and "receives" or "fetches" such 1610 document data. 1611

The value of this attribute returned in a Get-Printer-Attributes response MAY depend on the "document-1612 format" attribute supplied in the Get-Printer-Attributes request (see [RFC2911] Section 3.2.5.1 and 6.2). 1613

. If the Printer does not support this attribute, then the spooling behavior is implementation dependent. 1614

The Get-Printer-Supported-Values operation (see description in [RFC3380]) returns a '1setOf type2 keyword' so 1615 that all possible values that the implementation is capable of supporting are indicated. 1616

The standard keyword values are: 1617

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

Page 58: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 58 of 96

'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.

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

This attribute specifies the maximum number of “save-info” member attribute collections that a Printer can accept 1619 in a job request. If the number of “save-info” member attribute collections supplied by a client in a Job Creation 1620 operation exceeds the value of this attribute, the Printer MUST accept or reject the request as described in the 1621 "save-info" description in the "job-save-disposition" description (see description in section 7.9). If the Printer only 1622 supports one “save-info” collection, then the Printer MAY either (1) support this attribute with a value of ‘1’ or (2) 1623 omit support of this attribute. The RECOMMENDED way for a client to determine whether or not a Printer 1624 supports saving jobs, is to query the “job-save-disposition-supported” Printer attribute (see description in section 1625 7.9.3). 1626

10.7 media-col-database (1setOf collection) 1627

This OPTIONAL extension enables a IPP client to query the set of pre-defined media collections available in the 1628 printer’s media database, if the “media-col” attribute is supported. This attribute is identical in format and syntax to 1629 “media-col-ready”, but returns the entire set of pre-defined media collections known by the printer instead of just 1630 the media collections currently in the printer trays. If this attribute is supported, the members of the collections 1631 correspond to the supported members of the “media-col” attribute. 1632

The Printer MUST NOT return this attribute in the response to the Get-Printer-Attributes operation when the client 1633 requested the 'all' or 'printer-description' group names. Therefore the client must request this attribute explicitly in 1634 order to get the media collections. The reason for this recommendation is that the amount of data returned in the 1635 response would be very large when combined with all of the other attributes. 1636

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

This OPTIONAL attribute specifies additional detailed and technical information about the printer, in the same way 1638 “job-detailed-status-messages” provides additional information about a job. Printer-specific information such as 1639 fault and warning messages can be captured, and the 1setOf syntax supports multiple messages. The Printer 1640 NEED NOT localize the message(s), since they are intended for use by the system administrator or other 1641 experienced technical persons. Clients MUST NOT attempt to parse the value(s) of this attribute. 1642

10.9 which-jobs-supported (1setOf type2 keyword) 1643

This attribute enables a client to query the printer for the set of values that can be supplied one at a time as a 1644 value of the “which-jobs” operation attribute of the Get-Jobs operation. Current allowed values for “which-jobs” are 1645 ‘completed’ and ‘not-completed’, and the “which-jobs” extensions described above extend the values to include 1646 keywords corresponding to the symbolic names of all IPP “job-state” enum values and to include Proof Print Jobs 1647 and Saved Jobs. The Printer MUST support the "which-jobs-supported" Printer Description attribute if it supports 1648 the "proof-print" and/or "job-save-disposition" Job Template attributes. See section 11.2 for the values). 1649

If this attribute is supported, then the Printer MUST support both ‘completed’ and ‘not-completed’ as valid values. 1650

Page 59: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 59 of 96

11 Additional Values and Semantics for Existing IPP 1651

Attributes 1652

This section defines additional values for existing attributes. The existing text for those attributes is not 1653 reproduced here in order to prevent deviations. 1654

11.1 pdl-override-supported (type2 keyword) Printer Description attribute 1655

The following additional OPTIONAL value is defined for the “pdl-override-supported” (type2 keyword) 1656 Printer Description attribute (see [RFC2911] section 4.4.28): 'guaranteed': This value indicates that the 1657 Printer object: 1658

1) guarantees that the IPP Job Template attribute values take precedence over instructions of any form 1659 embedded anywhere in the document data. 1660

2) and guarantees that no PDL instruction is performed that does not correspond to a current value in the 1661 corresponding "xxx-supported" Printer attribute. In such a situation, the Printer MAY (a) abort the job, (b) 1662 stop the Printer, (c) hold the job, or (d) substitute on the fly with one of the current values of its "xxx-1663 supported" attribute. This choice MAY be fixed by the implementation or configurable by the system 1664 administrator and MAY depend on the attribute. 1665

3) provides the "queue override" semantics as described below, if the "xxx-supported" Printer attribute is 1666 configured with only a single value. 1667

See [RFC2911] for a full description of how this attribute interacts with and affects other IPP attributes, especially 1668 the "ipp-attribute-fidelity" attribute. 1669

Additional semantics for 'guaranteed' value of "pdl-override-supported" attribute 1670

If a Printer's "pdl-override-supported" is 'guaranteed', then the Printer MUST follow these additional semantics for 1671 Job Creation requests and Get-Job-Attributes or Get-Jobs responses. 1672

Whether or not the client supplied the "xxx" Job attribute in the Job Creation operation, the Printer MUST accept 1673 or reject the job based on "ipp-attribute-fidelity" as usual. However, if "ipp-attribute-fidelity" was 'false' and the 1674 supplied "xxx" value did not match any of the "xxx-supported" values, the Printer MUST accept the job as usual, 1675 but MUST NOT store that attribute on the Job object. The Printer MUST return an "xxx" Job attribute in 1676 subsequent Get-Job-Attributes and Get-Jobs responses according to the following rules: 1677

(a) If the client did not supply the "xxx" Job attribute in the Job Creation operation and the current value of 1678 the Printer's "xxx-supported" attribute has only a single value (the so-called queue override case), then 1679 the Printer MUST return an "xxx" attribute with that current single value in a Get-Job-Attributes or Get-1680 Jobs, response, as if the client had supplied "xxx" Job attribute with that value. 1681

Rationale for this new behavior: because the printed result will be the same as if the client had 1682 supplied the "xxx" Job attribute with that single value (since that value will override a corresponding 1683 PDL instruction), the response should reflect those (new) semantics. 1684

(b) If the client did not supply the "xxx" Job attribute in the Job Creation operation and the current value of 1685 the Printer's "xxx-supported" attribute has more than one value, then the Printer MUST NOT return 1686 that "xxx" attribute in a Get-Job-Attributes or Get-Jobs response. 1687

Rationale: Same behavior as for the other values of "pdl-override-supported". 1688

Page 60: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 60 of 96

(c) If the client did supply the "xxx" Job attribute in the Job Creation operation and the current value of the 1689 Printer's "xxx-supported" attribute has only a single value (the so-called queue override case), then the 1690 Printer MUST return that "xxx" Job attribute with the Printer's current "xxx-supported" value in a Get-1691 Job-Attributes or Get-Jobs, response, as if the client had supplied "xxx" with that value. 1692

Rationale for this new behavior: because the behavior of the Printer is to enforce that "xxx" Job 1693 attribute with the Printer's current single (override) value. 1694

(d) If the client did supply the "xxx" attribute in the Job Creation operation and the current value of the 1695 Printer's "xxx-supported" attribute has more than one value and one of them match, then the Printer 1696 MUST return that "xxx" Job attribute with the client-supplied value in a Get-Job-Attributes or Get-Jobs 1697 response. 1698

Rationale: Same behavior as for the other values of "pdl-override-supported". 1699

(e) If the client did supply the "xxx" attribute in the Job Creation operation and the current value of the 1700 Printer's "xxx-supported" attribute has more than one value but none of them match, then the Printer 1701 MUST NOT return that "xxx" Job attribute with the client-supplied value in a Get-Job-Attributes or Get-1702 Jobs response. It MUST either (1) not return the attribute at all or return it with one of the supported 1703 values, depending on implementation. 1704

Rationale: Same behavior as for the other values of "pdl-override-supported". 1705

The above five cases are represented in Table 13. 1706

Table 13 - Rules for 'guaranteed' value of "pdl-override-supported" attribute 1707

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

Examples of queue override 1708

The queue override extension allows an implementation to guarantee that only advertised supported attribute 1709 values are actually performed, and that unsupported values embedded as instructions in the document data, will 1710 not be performed. This extension is also a further step in making a Printer object indicate what it really supports in 1711 both the protocol and the PDL and what it does not, i.e., "truth in advertising". In other words, the absence of a 1712 value in the Printer's "xxx-supported" attribute indicates a guarantee that the value cannot be performed. 1713

For example, an administrator that wants to force two sided printing could set the Printer's "sides-supported" to the 1714 two values: 'two-sided-long', 'two-sided-short' (see [RFC2911]). Thus a PDL that contained an embedded simplex 1715 (one-sided) instruction would be overridden in one of the following ways: (1) aborted, (2) held, or (3) automatically 1716 forced to two-sided, depending on implementation and/or site policy. 1717

Page 61: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 61 of 96

As another example, an administrator could set up an IPP Printer that always staples by setting the "finishings-1718 supported" to 'staple' only, i.e. by removing the 'none' keyword value (see [RFC2911]). In order to allow jobs not to 1719 be stapled on the same physical piece of hardware, the administrator would use fan-in (if supported) to set up 1720 another IPP Printer that does include the 'none' keyword value in its "finishings-supported" attribute. 1721

The values of the Printer's "xxx-supported" attribute are not only what the Printer will accept in the print protocol 1722 (e.g. IPP) as attributes, but also as corresponding values of embedded PDL instructions. If a value that is not in 1723 the "xxx-supported" list is encountered in either the print protocol or the PDL, it MUST NOT be performed (no 1724 matter what the value of "ipp-attribute-fidelity" is). 1725

The four combinations of unsupported IPP attribute values and unsupported PDL instruction values are: 1726

(1) unsupported attribute value in the protocol and "ipp-attribute-fidelity" = 'false' (independent of "pdl-1727 override-supported"): 1728

The Printer object MUST accept the Job with the unsupported attribute value. However, the Printer 1729 object will always return only one of its "xxx-supported" values in response to Get-Jobs or Get-Job-1730 Attributes. Depending on implementation, the Printer can perform this substitution once at job 1731 submission time, or each time the job is queried. 1732

(2) unsupported attribute value in the protocol and "ipp-attribute-fidelity" = 'true' (independent of "pdl-1733 override-supported"): 1734

The Printer MUST reject the job. 1735

(3) unsupported embedded instruction value in the PDL and "pdl-override-supported" = 'attempted' or 'not-1736 attempted' (and independent of "ipp-attribute-fidelity"): 1737

When an implementation encounters a value that is not in the "xxx-supported" list, it makes no special 1738 action and allows it to be performed. See the definition of "Supports" in [RFC2911] that indicates that 1739 performing a PDL instruction that is not supported in the protocol is an allowed behavior. 1740

(4) (new case) unsupported embedded instruction value in the PDL and "pdl-override-supported" = 1741 'guaranteed' (and independent of "ipp-attribute-fidelity"): 1742

The unsupported embedded instruction value MUST NOT be performed. The behavior is 1743 implementation-dependent if an unsupported embedded instruction value is encountered. For 1744 example, the Printer MAY abort the job or substitute on the fly with one of the current values of its 1745 "xxx-supported" attribute. This choice MAY be fixed by the implementation or configurable by the 1746 system administrator and MAY depend on the Job Template attribute. 1747

11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported 1748 (1setOf type2 keyword) Printer Description attribute 1749

This section defines additional keyword values for the IPP "which-jobs" (type2 keyword) Operation attribute of the 1750 Get-Jobs operation (see [RFC2911] section 3.2.6) and the “which-jobs-supported” (1setOf type2 keyword) Printer 1751 Description attribute (see section 10.9) to include keywords corresponding to the symbolic names of all IPP “job-1752 state” enum values (see [PWG5100.3] section 4.3.7), an ‘all’ value, and values to correspond to Proof Print Jobs 1753 and Saved Jobs. The following keywords are OPTIONAL to support, unless indicated otherwise in their 1754 descriptions. 1755

Keyword Description

Page 62: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 62 of 96

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.

'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.

11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute 1756

The following table defines additional keyword values for the IPP “job-state-reasons” Job Description 1757 attribute (see [RFC2911], [RFC3998], [PWG5100.3], and [PWG5100.6]. The descriptions indicate 1758 conditional conformance, if any. 1759

Keyword Description

'job-delay-output-until-specified'

The value of the job's "job-delay-output-until" or "job-delay-output-until-time" Job Template attribute was specified with a time period or date-time, respectively, that is still in the future. The job MUST NOT produce output before this reason is removed (whether or not the implementation holds the job - see sections 7.4 and 7.5). This value MUST be supported if the "job-delay-output-until" or "job-delay-output-until-time" Job Template attribute is supported.

'job-password-wait' The job is currently being held until the correct password is entered at the device. If the "job-password" Operation attribute (See section 6.1) is supported, this value MUST be supported.

Page 63: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 63 of 96

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-printed-with-warnings'

The job was printed with warnings, 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-warnings’ 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.

'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

Page 64: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 64 of 96

Keyword Description 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. 1760

11.3.1 Additional Semantics for "job-state-reasons" attribute for "job-hold-until-time" 1761 attribute 1762

This section adds additional semantics to the 'job-hold-until-specified' value defined in other standards: 1763 Keyword Description

'job-hold-until-specified' The value of the job's "job-hold-until" [RFC2911] 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.

11.3.2 Additional Semantics for "job-state-reasons" attribute for "job-save-disposition" 1764 attribute 1765

This section defines additional values that are defined in support of the "job-save-disposition" attribute in section 1766 7.9). 1767

Many of the existing "job-state-reasons" attribute values can apply to a ‘save-only’ job as well as a job submitted 1768 for printing. If the value of the “job-disposition” attribute is 'save-only', the "job-state-reasons" attribute MAY be set 1769 with existing values such as 'job-incoming', 'resources-are-not-ready' (such as a font), 'job-interpreting', and 'job-1770 queued'. Likewise, errors that occur on a saved job MAY have existing "job-state-reasons" attribute values such as 1771 'job-data-insufficient', 'document-access-error', 'submission-interrupted', 'job-canceled-by-user', 'aborted-by-1772 system', etc. 1773

There are also new four new "job-state-reasons" keyword values REQUIRED that support a saved job -- 'job-1774 saving', 'job-saved-successfully', 'job-saved-with-warnings', and 'job-saved-with-errors' -- and these have been 1775 added to the list defined above. The existing ‘job-completed-successfully’, job-completed-with-warnings’, and ‘job-1776 completed-with-errors’ values are also clarified in the list above for implementations that support the "job-save-1777 disposition" Job Template attribute, in such a way that these values remain compatible with Printers and clients 1778 that do not support job saving. 1779

Table 14 enumerates the possible combinations of print and save success, warning, and error conditions. Note 1780 that two values occur only when there are print warnings/errors and a save error. 1781

Page 65: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 65 of 96

Table 14 - Values of "job-state-reasons" attribute for various job conditions 1782

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'

1783

11.4 Additional keyword values for the “media-type” member attribute 1784

The additional OPTIONAL keyword values for the “media-type” member attribute of the “media-col” Job Template 1785 attribute (see [PWG5100.3]) are: 1786

Keyword Description

’aluminum’ Conventional or CtP press plate - from [JDF1.4] Media/@MediaTypeDetails attribute..

‘cardboard’ Cardboard - from [JDF1.4] Media/@MediaTypeDetails attribute..

‘cd’ CD disc to be printed on - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘corrugated-board’ Corrugated board - from [JDF1.4] Media/@MediaType attribute.

‘disc’ CD or DVD disc to be printed on - from [JDF1.4] Media/@MediaType attribute.

‘double-wall’ Double wall corrugated board

'dry-film' Dry film - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘dvd’ DVD disc to be printed on - from [JDF1.4] Media/@MediaTypeDetails attribute..

‘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 - from [JDF1.4] Media/@MediaType attribute.

‘embossing-foil’ Embossing foil - from [JDF1.4] Media/@MediaType attribute.

‘film’ File - from [JDF1.4] Media/@MediaType attribute.

‘flexo-base’ For the base layer of flexo plates - from [JDF1.4] Media/@MediaTypeDetails attribute.

Page 66: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 66 of 96

‘flexo-photo-polymer’

For the photopolymer layer of flexo plates - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘flute’ Flute layer of a corrugated board - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘foil’ Foil - from [JDF1.4] Media/@MediaType attribute.

‘gravure-cylinder’ Gravure cylinder - from [JDF1.4] Media/@MediaType attribute.

‘image-setter-paper’

Contact paper as replacement for film - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘imaging-cylinder’ Reusable direct imaging cylinder in a press - from [JDF1.4] Media/@MediaType attribute.

‘laminating-foil’ Laminating foil - from [JDF1.4] Media/@MediaType attribute.

‘letterhead’ Separately cut Sheets of an opaque material including a letterhead - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘mounting-tape’ Flexo plate mounting tape - from [JDF1.4] Media/@MediaType attribute.

‘other’ Not one of the defined values - from [JDF1.4] Media/@MediaType attribute.

’paper’ Paper - from.

‘plate’ Plate - from [JDF1.4] Media/@MediaType attribute.

'polyester' Polyester - from [JDF1.4] Media/@MediaTypeDetails attribute..

‘screen’ Used fro Screen Printing - from [JDF1.4] Media/@MediaType attribute.

‘self-adhesive’ Self adhesive - from [JDF1.4] Media/@MediaType attribute.

‘single-face’ Single face corrugated board - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘single-wall’ Single wall corrugated board - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘sleeve’ For flexo sleeves - from [JDF1.4] Media/@MediaType attribute.

‘shrink-foil’ Shrink foil - from [JDF1.4] Media/@MediaType attribute.

‘tractor’ Tractor feed with holes - from [JDF1.4] Media/@MediaTypeDetails attribute.

‘triple-wall’ Triple wall corrugated board - from [JDF1.4] Media/@MediaTypeDetails attribute.

'wet-film' Wet film - from [JDF1.4] Media/@MediaTypeDetails attribute.

1787

Page 67: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 67 of 96

11.5 Additional semantics for the IPP "media-col" Job Template Attribute 1788

The following member attributes in Table 15 and their semantic descriptions have been added to the existing IPP 1789 “media-col” Job Template attribute. 1790

1791

Table 15 – Additional "media-col" member attributes 1792

Member Attribute

Name

Attribute Syntax

Request

Printer Support

media-tooth type3 keyword | name(MAX)

MAY MAY

media-grain type3 keyword | name(MAX)

MAY MAY

media-thickness integer(1:MAX) MAY MAY

These additional "media-col" collection member attributes definitions are: 1793

11.5.1 media-tooth (type3 keyword | name(MAX)) 1794

The "media-tooth" member attribute indicates the desired tooth (or roughness) of the media being specified. The 1795 source for this attribute is [ISO10175]. 1796

The tooth of a medium is particularly important for those marking engines that use pens (e.g. plotters) to mark the 1797 medium. The type of pen used shall match the tooth of the medium for best resolution. 1798

Standard keyword values for "media-tooth" are: 1799

Keyword Description

‘antique’ Rougher than vellum surface - from [JDF1.4] Media/@Texture attribute.

‘calendared’ Extra smooth or polished, uncoated paper - from [JDF1.4] Media/@Texture attribute.

'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 - from [JDF1.4] Media/@Texture attribute.

'medium' The specified media should have a medium tooth or regular finish.

‘smooth’ Smooth - from [JDF1.4] Media/@Texture attribute.

‘stipple‘ Fine pebble finish - from [JDF1.4] Media/@Texture attribute.

‘uncalendared’ Rough, unpolished and uncoated papers - from [JDF1.4] Media/@Texture attribute.

Page 68: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 68 of 96

Keyword Description

‘vellum’ Slightly rough surface - from [JDF1.4] Media/@Texture attribute.

The Administrator can define a custom media tooth using the 'name' (MAX) attribute syntax of the "media-tooth-1800 supported" (1setOf (type3 keyword | name(MAX))) Printer attribute. Note: as with other Job Template and member 1801 attributes, the user can also supply user-defined tooth names that are not among the values of the “media-tooth-1802 supported” Printer attribute, if the Administrator has configured the Printer's "user-defined-values-supported" 1803 attribute (see [PWG5100.3]) to contain the 'media-tooth' attribute keyword value. 1804

11.5.1.1 media-tooth-supported (1setOf (type3 keyword | name(MAX))) 1805

The "media-tooth-supported" (1setOf (type3 keyword | name(MAX))) Printer attribute identifies the values of this 1806 "media-tooth" member attribute that the Printer supports, i.e., the media tooth supported. 1807

11.5.2 media-grain (type3 keyword | name(MAX)) 1808

The "media-grain" member attribute indicates the desired grain of the media being specified. The source for this 1809 attribute is [ISO10175]. 1810

Grain affects the curl and the folding of the medium. Some marking engines are sensitive to the resulting curl. 1811

Standard keyword values for "media-grain" are: 1812

Keyword Description

'x-direction' The direction of the paper fibers is in the short dimension (i.e. the x-direction) of the medium.

'y-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. 1813

The Administrator can define a custom media grain using the 'name' (MAX) attribute syntax of the "media-grain-1814 supported" (1setOf (type3 keyword | name(MAX))) Printer attribute. Note: as with other Job Template and member 1815 attributes, the user can also supply user-defined grain names that are not among the values of the “media-grain-1816 supported” Printer attribute, if the Administrator has configured the Printer's "user-defined-values-supported" 1817 attribute (see [PWG5100.3]) to contain the 'media-grain' attribute keyword value. 1818

11.5.2.1 media-grain-supported (1setOf (type3 keyword | name(MAX))) 1819

The "media-grain-supported" (1setOf (type3 keyword | name(MAX))) Printer attribute identifies the values of this 1820 "media-grain" member attribute that the Printer supports, i.e., the media grain supported. 1821

The Administrator can define custom media types using the 'name' (MAX) attribute syntax of the "media-1822 supported" (1setOf (type3 keyword | name(MAX))) Printer attribute. Note: as with other Job Template and member 1823 attributes, the user can also supply user-defined material names that are not among the values of the “media-1824 supported” Printer attribute, if the Administrator has configured the Printer's "user-defined-values-supported" 1825 attribute (see [PWG5100.3]) to contain the 'media' attribute keyword value. 1826

Page 69: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 69 of 96

11.5.3 media-thickness (integer(1:MAX)) 1827

The "media-thickness" member attribute indicates the thickness of the media being specified. The source for this 1828 attribute is JDF v1.0. 1829

The unit of measure for the "media-thickness" member attribute is one hundredth of a millimeter. This unit is 1830 equivalent to 1/2540 th of an inch resolution. 1831

11.5.3.1 media-thickness-supported (rangeOfInteger(1:MAX)) 1832

The "media-thickness-supported" (rangeOfInteger(1:MAX)) Printer attribute identifies the values of this "media-1833 thickness" member attribute that the Printer supports. 1834

12 Conformance Requirements 1835

This section summarizes the Conformance Requirements detailed in the definitions in this document for clients 1836 and Printer objects (servers or devices). 1837

12.1 Conformance Requirements for this specification 1838

In order for a client and a Printer to claim conformance to this Job and Printer Extensions - Set 2 Specification a 1839 client MUST be able to supply and a Printer MUST support the following: 1840

1. The Cancel-Jobs operation (section 5.1) 1841

2. The Cancel-My-Jobs operation (section 5.2) 1842

3. The Close-Job operation (section 5.3) 1843

4. The Resubmit-Job operation (section 5.4) 1844

5. The Reprocess-Job operation [RFC3998] 1845

6. The "job-ids" Operation attribute (section 6.3) in the Get-Jobs operation [RFC2911] (section 3.2.6) 1846

7. The "job-ids" Operation attribute (section 6.3) in the Purge-Jobs operation[RFC2911] (section 3.2.9), if 1847 Purge-Jobs operation is supported (section 6.4) 1848

8. The "proof-print" Job Template attribute (sections 7.11). See also section 12.5 Conformance 1849 Requirements for the REQUIRED "proof-print" Job Template attribute 1850

9. The "job-ids-supported" Printer Description attribute (section 10.2) 1851

10. The "which-jobs-supported" Printer Description attribute (see section 10.9 for which values) 1852

The other attributes defined in this specification are OPTIONAL for a client to be able to supply and for a Printer to 1853 support. 1854

Comment [th12]: ISSUE: OK to add forward reference to additional conformance requiremets for "proof-print"?

Page 70: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 70 of 96

12.2 Conditional Conformance Requirements for Printer objects 1855

The following conditional conformance requirements are defined: 1856

1857

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 (see [RFC2911] section 4.2.2) and the Hold-Job operation with the "job-hold-until" ([RFC2911]) and "job-hold-until-time" (see section 8.1 above( Operation attributes and the Release-Job operation.

"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 Set-Job-Attributes operation (see section 8.2 above).

"job-delay-output-until" Job Template attribute in Job Creation operations

Set-Job-Attributes operation (see section 8.2 above).

1858

Each of the collection attribute definitions indicate which member attributes are REQUIRED and which are 1859 OPTIONAL for a Printer to support and is not repeated here. 1860

If a Printer supports the 'collection' attribute syntax of a Job Template attribute , then it MUST support the 1861 distinguished none value defined for that collection. See section 2.7 of [PWG5100.3]. 1862

Support of the 'name' attribute syntax for Job Template attributes and collection member attributes is OPTIONAL, 1863 as in IPP/1.1 [RFC2911]. 1864

12.3 Conformance Requirements for clients 1865

Clients that support a "xxx" collection Job Template attribute SHOULD use the Get-Printer-Attributes request to 1866 obtain the "xxx-default" collection and display that to the user, so that the user can make any changes before 1867 submitting the Job. Then the client submits values for all member attributes, rather than depending on the 1868 Printer's defaulting for omitted member attributes, since such defaulting is implementation dependent and will vary 1869 from Printer to Printer. 1870

12.4 Conformance Requirements for the OPTIONAL "job-save-disposition" Job Template 1871 attribute 1872

This section specifies the conformance requirements for Printers and clients that if they support the OPTIONAL 1873 "job-save-disposition" Job Template attribute. It also defines the conformance requirements for Job Save Format 1874 specifications. 1875

12.4.1.112.4.1 Client Conformance Requirements for the 'job-save-disposition" 1876 attribute 1877

In order to claim conformance for the OPTIONAL "job-save-dispositions" Job Template attribute, Conforming 1878 clients: 1879

1. MUST support the “job-save-disposition” (collection) attribute according to the description in section 7.9, 1880 including the member attributes as REQUIRED by Table 7. 1881

Formatted: Heading 3

Formatted: Bullets and Numbering

Comment [th13]: ISSUE: OK to add "OPTIONAL to title to make it clearer that "job-save-disposition" is OPTIONAL?

Comment [th14]: ISSUE: OK to clarify that these conformance conditions are conditional, i.e., IF "job-save-disposition" is supported. Yes

Comment [th15]: ISSUE: OK to clarify that these conformance conditions are conditional, i.e., IF "job-save-disposition" is supported. Yes

Page 71: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 71 of 96

2. MUST support the “save-info” (collection) member attribute according to the "job-save-disposition" 1882 attribute description in section 7.9, including the member attributes as REQUIRED by Table 8. 1883

3. MUST support the Reprocess-Job and Resubmit-Job operations for printing saved jobs according to 1884 section 4.3 above. 1885

12.4.1.212.4.2 Printer Conformance Requirements for the 'job-save-disposition" 1886 attribute 1887

In order to claim conformance for the OPTIONAL "job-save-dispositions" Job Template attribute, Conforming 1888 Printers: 1889

1. MUST support the “job-save-disposition” (collection) Job Template attribute according to the description in 1890 section 7.9, including the member attributes as REQUIRED by Table 7 and the “job-save-disposition-1891 default” attribute and the “job-save-disposition-supported” attribute. 1892

2. MUST support all of the “save-disposition” member attribute values defined in the "job-save-disposition" 1893 description section 7.9. 1894

3. MUST support the “save-info” (collection) member attribute according to the "job-save-disposition" 1895 attribute description in section 7.9, including the member attributes as REQUIRED by Table 8 and the 1896 “save-location-supported”, “save-name-supported”, “save-document-format-supported”, and “save-info-1897 supported” Printer attributes. 1898

4. SHOULD support the ‘ftp:’, and ‘http:’ schemes and MAY support 'file:' scheme for use in the “save-1899 location” member attribute as defined in the "job-save-disposition" attribute description in section 7.9. 1900

5. MUST support at least one “save-document-format” (mimeMediaType) attribute value, as defined in the 1901 "job-save-disposition" attribute description in section 7.9, for use in the “save-document-format” member 1902 attribute. 1903

6. SHOULD support a superset of the values of the Printer’s “save-document-format-supported” attribute 1904 (section 7.9.1.2.3.3.2) as the values of the Printer’s “document-format-supported” attribute ([RFC2911] 1905 section 4.4.22). 1906

7. MUST support the "job-save-printer-make-and-model" Job Description attribute (see section 9.1). 1907

8. MUST support the "which-jobs-supported" Printer Description attribute (see section 10.9) and the 'saved' 1908 keyword values (see section 11.2). 1909

9. MUST support the ‘job-saving’, 'job-saved-successfully', 'job-saved-with-warnings', and ‘job-saved-with-1910 errors’ values of the “job-state-reasons” Job Description attribute as defined in the "job-state-reasons" 1911 attribute description in section 11.3. 1912

12.4.1.312.4.2.1 Job Save Format Specification Conformance Requirements 1913

Documents that define a Job Save format MUST contain the following information: 1914

1. MUST specify the mimeMediaType value that identifies the Job Save Format, e.g., 'application/X-single-1915 page-tiff'. 1916

Formatted: Heading 3

Formatted: Bullets and Numbering

Formatted: Bullets and Numbering

Comment [th16]: ISSUE: OK to clarify that these conformance conditions are conditional, i.e., IF "job-save-disposition" is supported. Yes

Page 72: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 72 of 96

2. MUST define the representation for PDL data. 1917

3. MUST specify the formats of the document content and how the Job Save Format file references the 1918 document content, e.g., using Relative URI value (see [RFC2396]) to reference the document content in 1919 the “document-uri” operation attribute. 1920

4. MUST define whether or not Printers with differing values of their “printer-make-and-model” Printer 1921 attributes are expected to print saved jobs with the same appearance, i.e., whether or not a Printer MUST 1922 omit the “job-printer-make-and-model” Job Description attribute when saving the job in the defined format 1923 (see the "job-printer-make-and-model" attribute description in section 9.1). 1924

12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template attribute 1925

This section specifies the conformance requirements for Conforming Printers and clients that MUST support the 1926 REQUIRED "proof-print" Job Template attribute. 1927

12.5.1.112.5.1 Client Conformance Requirements for the 'proof-print" attribute 1928

Conforming clients: 1929

1. MUST support the “proof-print” (collection) attribute according to the description in section 7.11, including 1930 the member attributes as REQUIRED by Table 12. 1931

2. MUST support the Reprocess-Job and Resubmit-Job operations for printing saved jobs according to 1932 section 4.4 above. 1933

12.5.1.212.5.2 Printer Conformance Requirements for the 'proof-print" attribute 1934

Conforming Printers: 1935

1. MUST support the “proof-print” (collection) Job Template attribute according to the description in section 1936 7.11, including the member attributes as REQUIRED by Table 12 and the “proof-print-default” attribute and 1937 the “proof-print-supported” attribute. 1938

2. MUST support the "which-jobs-supported" Printer Description attribute (see section 10.9) and the 'saved' 1939 keyword values (see section 11.2). 1940

13 IANA Considerations 1941

1942

13.1 Attribute Registration 1943

The attributes defined in this document will be published by IANA according to the procedures in RFC 2911 1944 [RFC2911] section 6.2 in the following file: 1945

http://www.iana.org/assignments/ipp-registrations 1946

The registry entry will contain the following information: 1947 1948

Formatted: Heading 3

Formatted: Bullets and Numbering

Formatted: Heading 3

Formatted: Bullets and Numbering

Comment [th17]: ISSUE: OK to add REQUIRED to title?

Page 73: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 73 of 96

Job Template attributes: Reference 1949 ----------------------- --------- 1950 feed-orientation (type3 keyword) [pwg5100.11] 1951 feed-orientation-default (type3 keyword) [pwg5100.11] 1952 feed-orientation-supported (1setOf (type3 keyword)) [pwg5100.11] 1953 font-name-requested (name(MAX)) [pwg5100.11] 1954 font-name-requested-default (name(MAX)) [pwg5100.11] 1955 font-name-requested-supported (1setOf name(MAX)) [pwg5100.11] 1956 font-size-requested (integer (1:MAX)) [pwg5100.11] 1957 font-size-requested-default (integer (1:MAX)) [pwg5100.11] 1958 font-size-requested-supported (1setOf rangeOfInteger (1:MAX))[pwg5100.11] 1959 job-delay-output-until (type3 keyword | name(MAX)) [pwg5100.11] 1960 job-delay-output-until-default (type3 keyword | name(MAX)) [pwg5100.11] 1961 job-delay-output-until-supported (1setOf (type3 keyword | 1962 name(MAX)) [pwg5100.11] 1963 job-delay-output-until-time (dateTime) [pwg5100.11] 1964 job-delay-output-until-time-supported (rangeOfInteger(0:MAX))[pwg5100.11] 1965 job-hold-until-time (dateTime) [pwg5100.11] 1966 job-hold-until-time-supported (rangeOfInteger(0:MAX) [pwg5100.11] 1967 job-phone-number (uri) [pwg5100.11] 1968 job-phone-number-default (uri) [pwg5100.11] 1969 job-phone-number-supported (boolean) [pwg5100.11] 1970 job-recipient-name (name(MAX)) [pwg5100.11] 1971 job-recipient-name-default (name(MAX)) [pwg5100.11] 1972 job-recipient-name-supported (boolean) [pwg5100.11] 1973 job-save-disposition (collection) [pwg5100.11] 1974 save-disposition (type3 keyword) [pwg5100.11] 1975 save-disposition-supported (1setOf (type3 keyword)) [pwg5100.11] 1976 save-info (1setOf collection) [pwg5100.11] 1977 save-document-format (mimeMediaType) [pwg5100.11] 1978 save-document-format-default (mimeMediaType) [pwg5100.11] 1979 save-document-format-supported (1setOf mimeMediaType) [pwg5100.11] 1980 save-location (uri) [pwg5100.11] 1981 save-location-default (uri) [pwg5100.11] 1982 save-location-supported (1setOf uri) [pwg5100.11] 1983 save-name (name (MAX)) [pwg5100.11] 1984 save-name-supported (boolean) [pwg5100.11] 1985 1986 pdl-init-file (1setOf collection) [pwg5100.11] 1987 pdl-init-file-default (1setOf collection) [pwg5100.11] 1988 pdl-init-file-supported (1setOf type2 keyword) [pwg5100.11] 1989 pdl-init-file-entry (name(MAX)) [pwg5100.11] 1990 pdl-init-file-entry-supported (1setOf name(MAX)) [pwg5100.11] 1991 pdl-init-file-location (uri) [pwg5100.11] 1992 pdl-init-file-location-supported (1setOf uri) [pwg5100.11] 1993 pdl-init-file-name (name(MAX)) [pwg5100.11] 1994 pdl-init-file-name-supported (1setOf name(MAX)) [pwg5100.11] 1995 1996 proof-print (collection) [pwg5100.11] 1997 proof-print-default (collection) [pwg5100.11] 1998 proof-print-supported (1setOf type2 keyword) [pwg5100.11] 1999 media (type3 keyword | name(MAX)) [pwg5100.11] 2000 media-col (collection) [pwg5100.11] 2001 proof-print-copies (integer (0:MAX)) [pwg5100.11] 2002 2003 media-col (collection) [pwg5100.11] 2004 media-grain (type3 keyword | name(MAX)) [pwg5100.11] 2005 media-thickness (integer(1:MAX)) [pwg5100.11] 2006

Page 74: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 74 of 96

media-tooth (type3 keyword | name(MAX)) [pwg5100.11] 2007 2008 Operation attributes: Reference 2009 --------- 2010 job-ids (1setOf integer(1:MAX)) [pwg5100.11] 2011 job-password (octetString(255)) [pwg5100.11] 2012 job-password-encryption (type3 keyword | name(MAX)) [pwg5100.11] 2013 2014 Job Description attributes: Reference 2015 --------- 2016 job-save-printer-make-and-model (text(127)) [pwg5100.11] 2017 2018 Printer Description attributes: Reference 2019 --------- 2020 job-creation-attributes-supported (1setOf type2 keyword) [pwg5100.11] 2021 job-ids-supported (boolean) [pwg5100.11] 2022 job-password-supported (integer(0:255)) [pwg5100.11] 2023 job-password-encryption-supported (1setOf (type3 keyword | 2024 name(MAX))) [pwg5100.11] 2025 save-name-subdirectory-supported (boolean) [pwg5100.11] 2026 job-spooling-supported (type2 keyword) [pwg5100.11] 2027 max-save-info-supported (integer(1:MAX)) [pwg5100.11] 2028 media-col-database (1setOf collection) [pwg5100.11] 2029 pdl-init-file-name-subdirectory-supported (boolean) [pwg5100.11] 2030 printer-detailed-status-messages (1setOf text(MAX)) [pwg5100.11] 2031 which-jobs-supported (1setOf type2 keyword) [pwg5100.11] 2032 2033

13.2 Attribute Value Registration 2034

The “document-format” mimeMediaType attribute values, the “pdl-override-supported” type2, “which-jobs” type2, 2035 and “job-state-reasons” type2 keyword attribute values defined in this document will be published by IANA 2036 according to the procedures in RFC 2911 [RFC2911] section 6.1 in the following file: 2037

http://www.iana.org/assignments/ipp-registrations 2038

The registry entries will contain the following information: 2039 2040 feed-orientation (type3 keyword) [pwg5100.11] 2041 feed-orientation-supported (1setOf type3 keyword) [pwg5100.11] 2042 long-edge-first [pwg5100.11] 2043 short-edge-first [pwg5100.11] 2044 2045 job-creation-attributes-supported (1setOf type2 keyword) [pwg5100.11] 2046 <all job template attributes supported at the job level> 2047 <all operation attributes supported at the job level> 2048 2049 job-password-encryption (type3 keyword | name(MAX)) [pwg5100.11] 2050 job-password-encryption-supported (1setOf (type3 keyword | name(MAX))) 2051 [pwg5100.11] 2052 md2 [pwg5100.11] 2053 md4 [pwg5100.11] 2054 md5 [pwg5100.11] 2055 none [pwg5100.11] 2056 sha [pwg5100.11] 2057 2058 job-save-disposition-supported (1setOf type2 keyword) [pwg5100.11] 2059 save-disposition [pwg5100.11] 2060

Page 75: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 75 of 96

save-info [pwg5100.11] 2061 2062 job-spooling-supported (type2 keyword) [pwg5100.11] 2063 automatic [pwg5100.11] 2064 spool [pwg5100.11] 2065 stream [pwg5100.11] 2066 2067 job-state-reasons (type2 keyword): [pwg5100.11] 2068 job-delay-output-until-specified [pwg5100.11] 2069 job-password-wait [pwg5100.11] 2070 job-printed-successfully [pwg5100.11] 2071 job-printed-with-errors [pwg5100.11] 2072 job-printed-with-warnings [pwg5100.11] 2073 job-resuming [pwg5100.11] 2074 job-saved-successfully [pwg5100.11] 2075 job-saved-with-errors [pwg5100.11] 2076 job-saved-with-warnings [pwg5100.11] 2077 job-saving [pwg5100.11] 2078 job-spooling [pwg5100.11] 2079 job-streaming [pwg5100.11] 2080 job-suspended-by-operator [pwg5100.11] 2081 job-suspended-by-system [pwg5100.11] 2082 job-suspended-by-user [pwg5100.11] 2083 job-suspending [pwg5100.11] 2084 2085 media-grain (type3 keyword | name(MAX)) [pwg5100.11] 2086 media-grain-supported (1setOf (type3 keyword | name(MAX))) [pwg5100.11] 2087 x-direction [pwg5100.11] 2088 y-direction [pwg5100.11] 2089 media-tooth (type3 keyword | name(MAX)) [pwg5100.11] 2090 media-tooth-supported (1setOf (type3 keyword | name(MAX))) [pwg5100.11] 2091 antique [pwg5100.11] 2092 calendared [pwg5100.11] 2093 coarse [pwg5100.11] 2094 fine [pwg5100.11] 2095 linen [pwg5100.11] 2096 medium [pwg5100.11] 2097 smooth [pwg5100.11] 2098 stipple [pwg5100.11] 2099 uncalendared [pwg5100.11] 2100 vellum [pwg5100.11] 2101 media-type (type2 keyword) [pwg5100.11] 2102 media-type-supported (1setOf type2 keyword) [pwg5100.11] 2103 aluminum [pwg5100.11] 2104 cardboard [pwg5100.11] 2105 cd [pwg5100.11] 2106 corrugated-board [pwg5100.11] 2107 disc [pwg5100.11] 2108 double-wall [pwg5100.11] 2109 dry-film [pwg5100.11] 2110 dvd [pwg5100.11] 2111 end-board [pwg5100.11] 2112 embossing-foil [pwg5100.11] 2113 film [pwg5100.11] 2114 flexo-base [pwg5100.11] 2115 flexo-photo-polymer [pwg5100.11] 2116 flute [pwg5100.11] 2117 foil [pwg5100.11] 2118

Page 76: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 76 of 96

gravure-cylinder [pwg5100.11] 2119 image-setter-paper [pwg5100.11] 2120 imaging-cylinder [pwg5100.11] 2121 laminating-foil [pwg5100.11] 2122 letterhead [pwg5100.11] 2123 mounting-tape [pwg5100.11] 2124 other [pwg5100.11] 2125 paper [pwg5100.11] 2126 plate [pwg5100.11] 2127 polyester [pwg5100.11] 2128 screen [pwg5100.11] 2129 self-adhesive [pwg5100.11] 2130 single-face [pwg5100.11] 2131 single-wall [pwg5100.11] 2132 sleeve [pwg5100.11] 2133 shrink-foil [pwg5100.11] 2134 tractor [pwg5100.11] 2135 triple-wall [pwg5100.11] 2136 wet-film [pwg5100.11] 2137 2138 pdl-init-file-supported (1setOf type2 keyword) [pwg5100.11] 2139 pdl-init-file-entry [pwg5100.11] 2140 pdl-init-file-location [pwg5100.11] 2141 pdl-init-file-name [pwg5100.11] 2142 2143 pdl-override-supported (type2 keyword): [pwg5100.11] 2144 guaranteed [pwg5100.11] 2145 2146 proof-print-supported (1setOf type2 keyword) [pwg5100.11] 2147 media [pwg5100.11] 2148 media-col [pwg5100.11] 2149 proof-print-copies [pwg5100.11] 2150 2151 save-disposition (type3 keyword) [pwg5100.11] 2152 save-disposition-supported (1setOf type3 keyword) [pwg5100.11] 2153 none [pwg5100.11] 2154 print-save [pwg5100.11] 2155 save-only [pwg5100.11] 2156 2157 save-info-supported (1setOf type2 keyword) [pwg5100.11] 2158 save-document-format [pwg5100.11] 2159 save-location [pwg5100.11] 2160 save-name [pwg5100.11] 2161 2162 which-jobs (type2 keyword) [pwg5100.11] 2163 which-jobs-supported (1setOf type2 keyword) [pwg5100.11] 2164 aborted [pwg5100.11] 2165 all [pwg5100.11] 2166 canceled [pwg5100.11] 2167 pending [pwg5100.11] 2168 pending-held [pwg5100.11] 2169 processing [pwg5100.11] 2170 processing-stopped [pwg5100.11] 2171 proof-print [pwg5100.11] 2172 saved [pwg5100.11] 2173 2174

Page 77: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 77 of 96

13.3 Type2 enum attribute value registrations 2175

2176 Attribute (attribute syntax) 2177 Enum Value Enum Symbolic Name Reference 2178 ---------- ------------------ --------- 2179 operations-supported (1setOf type2 enum) [pwg5100.11] 2180 0x0038 Cancel-Jobs [pwg5100.11] 2181 0x0039 Cancel-My-Jobs [pwg5100.11] 2182 0x003B Close-Job [pwg5100.11] 2183 0x003A Resubmit-Job [pwg5100.11] 2184 2185 2186

13.4 Operation registrations 2187

Operation Name Reference 2188 -------------------------------------- --------- 2189 Cancel-Jobs [pwg5100.11] 2190 Cancel-My-Jobs [pwg5100.11] 2191 Close-Job [pwg5100.11] 2192 Resubmit-Job [pwg5100.11] 2193

2194

14 Internationalization Considerations 2195

The IPP extensions defined in this document require the same internationalization considerations as any of the 2196 Job Template attributes defined in IPP/1.1 [RFC2911]. 2197

15 Security Considerations 2198

The IPP extensions defined in this document require the same security considerations as any of the Job Template 2199 attributes defined in IPP/1.1 [RFC2911]. 2200

16 References 2201

16.1 Normative References 2202

This section lists references to documents whose implementation are REQUIRED in order to conform to this 2203 specification. 2204

[JDF1.4] 2205 CIP4, Job Definition Format (JDF), 10 November 2008, http://www.cip4.org. 2206

[PWG5100.3] 2207 “Internet Printing Protocol (IPP): Production Printing Attributes – Set 1”, PWG 5100.3-2001, February 12, 2208

2001, ftp://ftp.pwg.org/pub/pwg/candidates/cs-ippprodprint10-20010212-5100.3.pdf. 2209

[RFC2119] 2210 "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119 , March 1997 2211

Page 78: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 78 of 96

[RFC2806] 2212 “URLs for Telephone Calls”, RFC 2806, April 2000. 2213

[RFC2910] 2214 "Internet Printing Protocol/1.1: Encoding and Transport", RFC 2910, September 2000. 2215

[RFC2911] 2216 "Internet Printing Protocol/1.1: Model and Semantics", RFC 2911, September 2000. 2217

[RFC3382] 2218 "Internet Printing Protocol (IPP): The ‘collection’ attribute syntax", RFC 3382, September 2002. 2219

16.2 Informative References 2220

This section lists references to documents that provide information, but whose implementation is NOT REQUIRED 2221 in order to conform to this specification. 2222

[ISO10175] 2223 ISO/IEC 10175 Document Printing Application (DPA), June 1996. 2224

[PWG5100.5] 2225 "Internet Printing Protocol (IPP): Document Object", IEEE-ISTO 5100.5-2003, 2226

ftp://ftp.pwg.org/pub/pwg/candidates/cs-ipppdocumentobject10-20031031-5100.5.pdf, October 31, 2003. 2227

[PWG5100.6] 2228 "Internet Printing Protocol (IPP): Page Overrides", IEEE-ISTO 5100.6-2003, 2229

ftp://ftp.pwg.org/pub/pwg/candidates/cs-ipppageoverride10-20031031-5100.6.pdf, October 31, 2003. 2230

[PWG5100.7] 2231 PWG Candidate Standard 5100.7, IPP Job Extensions, PWG 5100.7, October 2003. 2232

ftp://ftp.pwg.org/pub/pwg/candidates/cs-ippjobext10-20031031-5100.7.pdf, .doc 2233

[PWG-PROC] 2234 "PWG Process: Definition of the Standards Development Process", Version 3.0, PWG Process, 2235

ftp://ftp.pwg.org/pub/pwg/general/pwg-process-30.pdf, January 1, 2009. 2236

[RFC2565] 2237 "Internet Printing Protocol/1.0: Encoding and Transport", RFC 2565, April 1999. 2238

[RFC2566] 2239 "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, April 1999. 2240

[RFC2567] 2241 "Design Goals for an Internet Printing Protocol, RFC 2567, April 1999. 2242

[RFC2568] 2243 "Rationale for the Structure of the Model and Protocol for the Internet Printing Protocol", RFC 2568, April 2244

1999. 2245

[RFC3380] 2246 "Internet Printing Protocol (IPP): Job and Printer Set Operations", RFC 3380, September 2002. 2247

Page 79: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 79 of 96

[RFC3998] 2248 "Internet Printing Protocol (IPP): Job and Printer Administrative Operations", RFC 3998, March 2005. 2249

17 Editor's Addresses 2250

Editors: 2251

Tom Hastings 2252 809 N Dianthus St 2253 Manhattan Beach CA 90266 2254 2255 2256 Phone: 310-372-6734 2257 e-mail: [email protected] 2258 2259 Don Fullman 2260 27736 Cummins Dr 2261 Laguna Niguel, CA 92677 2262 2263 Phone: (949) 831-1031 2264 e-mail: [email protected] 2265 2266

Send comments to the PWG IPP Mailing List: 2267

[email protected] (subscribers only) 2268

To subscribe, see the PWG web page: 2269

2270

Implementers of this specification document are encouraged to join IPP Mailing List in order to participate in any 2271 discussions of clarification issues and review of registration proposals for additional attributes and values. 2272

2273 Other Participants: 2274

Lee Farrell Bob Herriot - Global Workflow Solutions Ira McDonald - High North Inc. Michael Sweet - Apple Jerry Thrasher - Lexmark William Wagner - TIC Peter Zehler - Xerox

2275

18 Appendix X - Change Log 2276

[[[PWG Secretary: Delete this section before publication as a Candidate Standard]]] 2277

Page 80: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 80 of 96

18.1 7 November 2010 (v37, v36, v35) 2278

Editorial comments received during PWG Formal Vote and during IPP WG review. Mainly to make the 2279 conformance requirements be more clearly and consistently labeled either OPTIONAL or REQUIRED to agree 2280 with Section 1, 5, and 7. 2281

18.2 27 September 2010 - For PWG Formal Vote 2282

Clean verson for PWG Formal Vote. 2283

18.3 25 September 2010 (v33) - PWG Last Call Comments 2284

From the minutes of the 2010-09-13 minutes: 2285

e. Agreed to also add forward references for job save conformance requirements like Tom did for 2286 proof print. 2287

f. Line 1364: "pdl-init-file-name" instead of "save-name" 2288

g. Section 8.2.1: Clarified to apply all conditions to both job-delay-output-until and job-delay-output-2289 until-time. 2290

h. Section 8.2.2: Similar clarifications for job-hold-until and job-hold-until-time. 2291

i. Section 12.5: Additional corrections to remove references to job save format. 2292

18.4 13 September (v32) - Stable Version: Editied comments from the F2F held August 5, 2293 2010. 2294

From the minues of the 2010-08-05 f2f minutes: 2295

d. Add subsections to 8.2 for attributes 2296

Make like 8.1. 2297

e. Should make job-creation-attributes-supported REQUIRED for IPP/2.2 and and IPP 2298

Everywhere and RECOMMENDED for IPP/2.0 and IPP/2.1 2299

No change to JPS2, leave as OPTIONAL. 2300

f. Should we add filters for media-col-database? 2301

Add a new operation attribute as input to Get-Printer-Attributes, but wait for some other spec, not 2302 JPS2. 2303

g. Table 15 has a different format than other tables in spec? 2304

Make all keywords lists be table, but without heading and no conformance column. 2305

h. Section 12.1, item 7 doesn't have "if Purge-Jobs supported (section 6.4)" 2306

i. Section 12.5: first sentence refers to job-save-disposition instead of proof-print 2307

(which should be the REQUIRED proof-print attribute) 2308

j. Include forward references to section 12.5 for all proof-print stuff. 2309

k. Update affiliations in section 17 for other participants (no affiliation for Lee) 2310

Page 81: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 81 of 96

2311

18.5 25 July 1020 (v31) - Stable Version: Edited during the IPP WG 2010-07-19 telecon 2312 and after; ready for PWG Last Call 2313

From the minutes of the 2010-07-19 telecon: 2314

a. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext10-v30-20100718.pdf 2315 b. Agreed to not change font-size-requested - too much work otherwise for an edge 2316 case, and we could always add CPI and LPI attributes to provide the right fix. 2317 c. Agreed to change the lead-in text for section 3 to "In order to satisfy...". 2318 d. Agreed to remove references to "light production printing" 2319 e. Agreed to the access rights text for Close-Job 2320 f. Agreed to the change for job-password-supported to 255 octets. 2321 g. Agreed to keep job-spooling-supported a single value attribute to avoid causing 2322 changes to the XML encoding, and use 1setOf for Get-Printer-Supported-Values. All 2323 other changes are accepted. 2324 h. Agreed to not add a job-spooling-configured attribute. 2325 i. Agreed that job-spooling-supported can depend on document-format 2326 j. Agreed to remove the references to implementation-defined behavior in the 2327 description of job-spooling-supported. 2328

k. Agreed to drop "job size" example from the automatic value for job-spooling-supported. 2329

18.6 18 July 2010 (v30) - Stable version with attempt to resolve some of Apple's IPP WG 2330 Last Call Comments 2331

1. Section 3.1 Rationale: Per See Apple's IPP WG Last Call Comment #4: Removed reference to "light 2332 production printing" environments, since we have agreed to remove mention of Production Printing in 2333 JPS2, except to define it, since JPS2 is not limited to Production Printing or Light Production Printing. 2334

2. Section 5.3 Close-Job Operation: See Apple's IPP WG Last Call Comment #5: Added: Access Rights: 2335 The authenticated user (see [RFC2911] section 8.3) performing this operation must either be the job 2336 owner (as determined in the Create-Job operation) or an operator or administrator of the Printer object 2337 (see [RFC2911] Sections 1 and 8.5). Otherwise, the IPP object MUST reject the operation and return: 2338 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate. 2339

3. Section 10.3 job-password-supported (integer(0:255)): Per Apple's IPP WG Last Call Comment #6: 2340 Changed "127" to "255" to agree with the max number of octets allowed for the attribute. 2341

4. Section 10.5 job-spooling-supported (type2 keyword): Per Apple's IPP WG Last Call Comment #7: 2342

a. Added "1setOf" to "job-spooling-requested", so it is multi-valued. 2343

b. Indicated that the values returned MAY depend on the "document-format" of the documents 2344 supplied in the job and, hence, requested and returned in the Get-Printer-Attributes request and 2345 response, respectively. 2346

c. Removed the nonsense sentence that the values supported depend on implementation. 2347

d. Removed the sentence about Get-Printer-Supported-Values, since "job-spooling-supported" is now 2348 multi-valued in both Get-Printer-Attributes and Get-Printer-Supported-Values operations. 2349

Page 82: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 82 of 96

e. Indicated that 'automatic' value MAY depend on document format. 2350

5. Section 13.1 Attribute Registration: Per Apple's IPP WG Last Call Comment #7: Changed "job-2351 spooling-supported" to be "1setOf". 2352

18.7 6 June 2010 (v28) - Stable version 2353

1. Agreed to the added abstract text. 2354 2. Agreed that Cancel-Jobs must return successful-ok-ignored-or-substituted-attributes for job-ids 2355

that can't be canceled. 2356 3. Agreed to changes for job-delay-output-until value of "indefinite" 2357 4. Agreed that Resume-Job cannot be used with processing-stopped jobs. 2358 5. Agreed that job-delay-output-until and job-delay-output-until-time cannot be specified at the same 2359

time. 2360 6. Agreed that job-delay-xxxx and job-hold-xxxx *can* be specified at the same time. 2361 7. Agreed that job-hold-until and job-hold-until-time cannot be specified at the same time. 2362 8. Agreed to the creation of a new section 8 section on semantics. 2363 9. Agreed to move conformance text for job-hold-until-time to 12.x 2364 10. Issue: if job-hold-until-time is supported, Hold-Job, Release-Job, and job-hold-until must be 2365

supported 2366 11. Agreed to a rewritten version of the 8.1.1 text 2367 12. Issue: Need new 8.x sections for Release-Job and Restart-Job to address job-hold-until-time 2368 13. Agreed to the use of the job-hold-until-specified value when job-hold-until-time is specified 2369 14. Agreed to add job-hold-until=indefinite when an invalid job-hold-until-time is specified 2370 15. Issue: require support for Set-Job-Attributes when job-delay-output-xxxx are supported 2371 16. Agreed to the new Set-Job-Attributes semantics with a corrected reference (RFC 3380 section 2372

4.2). 2373 17. Agreed to the deletion of the first two paragraphs of 12.3. 2374

18. Agreed to update document status from prototype to stable. 2375

18.8 16 May 2010 (v27) 2376

1. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)) and 7.5 job-delay-output-until-time 2377 (dateTime): Only Set-Job-Attributes can get a job out of a indefinitely delay-output condition; Resume-2378 Job and Release-Job cannot be used for this. 2379

2. Section 7.6 job-hold-until-time (dateTime): Tightened up the error response to the bad request with 2380 both "job-hold-until" and "job-hold-until-time" specified in a job creation operation, so that the Printer 2381 MUST reject the operation and return 'client-error-conflicting-attributes' status code. 2382

3. Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs: Made arrows more 2383 horizontal. 2384

4. Added Section 8 Additional semantics for existing operations with subsections: 8.1 Additional attribute 2385 for use with the Hold-Job operation and 8.2 Additional attributes for use with the Set-Job-Attributes 2386 operation. 2387

18.9 19 April 2010 (v26) 2388

1. Section 8.1 Additional attribute for use with the Hold-Job operation: Agreed to NOT add any of the 3 2389 new operation attributes 'job-hold-until-time', 'job-delay-output-until' and 'job-delay-output-until-time' to 2390

Page 83: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 83 of 96

the existing Hold-Job operation, but implementers are free to do so. Instead, only add these 3 to Set-2391 Job-Attributes operation (as well as the Job Creation operations). Then it is clear what the effect will 2392 be on a job, since the attributes are explicitly supplied in the operation. 2393

2. Section 8.2 Additional attributes for use with the Set-Job-Attributes operation : Agreed that the 'job-2394 hold-until' and 'job-hold-until-time' are mutually exclusive, and that setting one with Set-Job-Attributes, 2395 cancels the effect of the other. Same for 'job-delay-output-until' and job-delay-output-until-time. 2396 However, that either of the attributes of the first pair can be supplied along with either of the second 2397 pair and they independently control the holding the processing and the delaying output of the job. Add 2398 section to explain this. 2399

18.10 18 April 2010 (v25) 2400

3. Table 3 - Legal job state transitions for Cancel-Jobs and Cancel-My-Jobs operations, Section 5.1.2 2401 Cancel-Jobs Response, and Section 5.2.2 Cancel-My-Jobs Response: Removed Rule 2 so that there 2402 are no errors conditions, only 'successful-ok' and 'successful-ok-ignored-or-substituted-attributes' 2403

4. Section Error! Reference source not found. Error! Reference source not found.: Added new 2404 section. 2405

5. Section Error! Reference source not found. Error! Reference source not found.: Added new 2406 section. 2407

6. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Removed the 'job-delay-output-until-2408 suspended' value for "job-state-reasons". 2409

7. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Added that the Printer MAY add 'job-2410 queued' "job-state-reasons" value when the time period does arrive 2411

8. Section 7.5 job-delay-output-until-time (dateTime) Removed the 'job-delay-output-until-suspended' 2412 value for "job-state-reasons". 2413

9. Section 7.5 job-delay-output-until-time (dateTime) Added that the Printer MAY add 'job-queued' "job-2414 state-reasons" value when the time period does arrive 2415

10. Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs: Fixed arrows, 2416 added job numbers for Complete state, and added OPTIONAL "job-state-reasons" values: 'job-2417 queued-for-marker' and 'job-queued'. 2418

18.11 6 April 2010 (v24) 2419

1. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)), Section 7.5 job-delay-output-until-2420 time (dateTime), and Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal 2421 Jobs: Added new 'job-delay-output-until-suspended' value for "job-state-reasons" attribute when the 2422 job is suspended in the 'processing-stopped' state waiting for the delay period or date-time to arrive. 2423

2. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)), Section 7.5 job-delay-output-until-2424 time (dateTime): Changed from using 'job-hold-until-specified' value for "job-state-reasons" attribute 2425 for implementations that cannot partially process the job before the delay output period or date-time 2426 arrives to always use the 'job-delay-output-until-specified' value. 2427

3. Section 11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute" Added definition for 2428 "job-delay-output-until-specified" value. 2429

Page 84: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 84 of 96

4. Section 11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute" Added definition for 2430 "job-delay-output-until-suspended" value. 2431

18.12 30 March 2010 (v23) 2432

1. Section 5.3 Close-Job Operation: Added sub-sections for Close-Job Request and Response. 2433

2. Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs: Improved figure 2434 and added sub-states of Waiting for Marker to the 'processing' state and Waiting for Processor to the 2435 'processing-stopped' state. 2436

18.13 29 March 2010 (v22) - during telecon 2437

1. Fixed some things in Figure 1, Figure 2, and Figure 3. 2438

2. Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs: Added this Figure. 2439

3. Section 13 IANA Considerations: Assigned the part number 11 for this PWG 5100.11 document. 2440

4. Section 13.3 Type2 enum attribute value registrations: Assigned enum hex values to Cancel-Jobs 2441 (0x0038), Cancel-My-Jobs (0x0039), Resubmit-Job (0x003A), and Close-Job (0x003B) - to agree with 2442 IPP 2.0 document. 2443

18.14 28 March 2010 (v21) 2444

1. Figure 1 - Job Creation Operation Flow Diagram with "job-delay-output-until": Added this Figure. 2445

2. Figure 2 - Job Creation Operation Flow Diagram with "job-delay-output-until-time" specified: Added 2446 this Figure. 2447

3. Figure 3 - Job Creation Operation Flow Diagram with "job-hold-until-time": Redrew this Figure with 2448 MS-WORD Drawing. Fixed two bugs: 2449

a. horizontal branch should be <= and vertical branch >, i.e., do NOT hold the job if the specified 2450 time has exactly arrived. 2451

b. The "job-hold-until-specified' should NOT be set in "job-state-reasons" if the time has arrived when 2452 other hold reasons apply, so only set "job-state-reasons" if the time has NOT yet arrived by adding 2453 extra box. 2454

18.15 15 March 2010 (v20) 2455

1. Table 4 - State Transition Table for the Resubmit-Job operation: Allowed the Printer to try a copy of 2456 the 'aborted' job, in case the reason for aborting the job was a temporary condition, such as disk full, 2457 which is no longer the case. 2458

2. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Clarified that the Printer MUST NOT 2459 delay processing or output of any other jobs while a delayed job that has processed waits for the 2460 specified time period. 2461

Page 85: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 85 of 96

3. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Clarified that the Printer puts the job 2462 into the 'processing' state while producing the output (from either the 'pending' state or the 'processing-2463 stopped' state). 2464

4. Table 5 - Comparison of "job-delay-output-until" with "job-hold-until": Moved the Description column to 2465 be first in the table, fixed some typos, and removed 'completed' state. 2466

5. Section 7.5 job-delay-output-until-time (dateTime): Made parallel changes to this section. 2467

6. Section 7.5 job-delay-output-until-time (dateTime): Added a forward reference to Section 12.3 2468 Conformance Requirements for clients dealing with supplying both "job-delay-output-until" and "job-2469 delay-output-until-time" attributes. 2470

7. Section 12.3 Conformance Requirements for clients: Removed mention of "job-hold-until" in 2471 combination with "job-hold-until-time" since we thought (incorrectly) it was covered in some other spec. 2472

8. Section 12.3 Conformance Requirements for clients: Added that the status code that the Printer 2473 returns when the client supplies both "job-delay-output-until" and "job-delay-output-until-time" attributes 2474 is 'client-error-conflicting-attributes'. 2475

18.16 1 March 2010 (v19) 2476

Edits made according to the agreements reached at the IPP WG telecon, 1 March 2010: 2477

1. Abstract: Added reason for Close-Job, i.e., streaming. 2478

2. Section 5.3 Close-Job Operation: Clarified that Close-Job MUST NOT add a document object. 2479

3. Section 5.3 Close-Job Operation: Removed the sentence that the client SHOULD use Send-Document 2480 with "last-document" = 'true' and no document data, if the Printer doesn't support Close-Job operation 2481

2482

18.17 28 February 2010 (v18) 2483

Edits made according to agreement reached at the IPP WG face to face meeting, February 10, 2010. 2484

1. Section 5.3 Close-Job Operation: Added REQUIRED Close-Job operation. 2485

2. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Added the OPTIONAL "job-delay-output-2486 until" (type3 keyword | name(MAX)), "job-delay-output-until-default" (type3 keyword | name(MAX)), and 2487 "job-delay-output-until-supported" (1setOf type3 keyword | name(MAX)) Job Template attributes. 2488

3. Section 7.5 job-delay-output-until-time (dateTime): Added the OPTIONAL "job-delay-output-until-time" 2489 (dateTime) and "job-delay-output-until-time" (rangeOfInteger(0:MAX)) Job Template attributes. 2490

18.18 10 January 2010 (v16) 2491

Additional edits made during and after the IPP WG telecon, 10 January 2010: 2492

1. Section 1 Introduction: Added Table 2: Operations defined or referenced, so as to include the REQUIRED 2493 Reprocess-Job operation defined in [RFC3998]. 2494

Page 86: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 86 of 96

2. Section 1 Introduction: Clarified the paragraph following Table 1 by changing the terminology from "Many 2495 of these functions MAY be supplied in a document format (PDL)" to "Many of semantics of these Job 2496 Template and Operation attributes MAY also be supplied in corresponding document format (PDL) 2497 directives". 2498

18.19 10 December 2009 (v15) 2499

Additional edits made as agreed at the IPP WG face to face, 9 December 2009: 2500

1. Removed mention of Production Printing in the Abstract. 2501

2. Added OPTIONAL and REQUIRED to the Abstract to reflect what is REQUIRED and what is OPTIONAL. 2502

18.20 2 December 2009 (v0.14) 2503

Additional edits made as agreed in the IPP WG telecon, 30 November 2009 and reflected in the minutes. 2504

1. Section 10.9 which-jobs-supported (1setOf type2 keyword): Removed OPTIONAL and added 2505 conditional MUST support if "proof-print" or "job-save-disposition" is supported. 2506

2. Section 11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf 2507 type2 keyword) Printer Description attribute: Removed OPTIONAL and added that some are 2508 OPTIONAL to support, unless indicated otherwise in their descriptions. 2509

3. Section 12.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute: Added 2510 MUST support "which-jobs-supported" Printer Description attribute. 2511

4. Added Section 12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template 2512 attribute to parallel Section 12.4 Conformance Requirements for the OPTIONAL "job-save-disposition" 2513 Job Template attribute. 2514

Here are the Minutes of the 30 November 2009: 2515

b. Agreed that "feature" is a good replacement term for "capability". 2516

c. Agreed to the new definitions for the Job Proof Print and Job Save and Reprint features. 2517

d. Agreed to the new section 3 text with minor corrections and removal of new attribute and operation 2518 names from the use cases. 2519

e. Agreed to the updated job-ids text that states job-ids cannot be specified in a Get-Jobs request with 2520 limit, my-jobs, or which-jobs. 2521

f. Agreed to the conformance text for the new job-state-reasons keywords. 2522

g. Added conformance text to which-jobs values. 2523

h. Agreed to the section 11 conformance requirements with the removal of "job-save-disposition" and 2524 the addition of the which-jobs reference. 2525

i. Agreed to the updated participant list. 2526

Page 87: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 87 of 96

18.21 30 November 2009 (v0.13) 2527

Edits made to carry out the agreement reached at the IPP WG telecon, 30 November 2009: 2528

1. Made sure that "job-save-disposition" Job Template attribute and the Job Save and Reprint Feature 2529 are OPTIONAL, while the "proof-print" Job Template attribute and the Job Proof Print Feature are 2530 REQUIRED. 2531

2. Section 3.1 Introduction: Added in parens (Job Owner and Operator) to item (f). 2532

3. Section 11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf 2533 type2 keyword) Printer Description attribute: Added conditional requirement that the 'proof-print' 2534 keyword value MUST be supported if the "proof-print" Job Template attribute is supported. 2535

4. Section 11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf 2536 type2 keyword) Printer Description attribute: Added conditional requirement that the 'saved' keyword 2537 value MUST be supported if the "job-save-disposition" Job Template attribute is supported. 2538

18.22 22 November 2009 (v0.12) 2539

Edits made to carry out the agreements reached at the IPP WG telecon, 2 November 2009: 2540

1. Changed "Capability" to "Feature" and replaced a number of such usages with "job-save-disposition" 2541 Job Template attribute and "proof-print" Job Template attribute. 2542

2. Changed "Job and Printer Extensions - Set 2 extension/document" to "Job and Printer Extensions - 2543 Set 2 Specification". 2544

3. Section 2.2 Other terminology: Added the term Job Proof Print Feature 2545

4. Section 2.2 Other terminology: Enhanced the term Job Save and Reprint Feature 2546

5. Section 3 Requirements: Added this whole new section written by Ira according to the IPP Policy 2547 V2.0, January 2009. 2548

6. Section 6.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation: If client supplies "job-ids" 2549 operation attribute it MUST NOT supply "limit", "my-jobs", and "which-jobs" and the Printer MUST 2550 detect such a client error and return 'client-error-conflicting-attributes'. 2551

7. Section 11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute: Added conditional 2552 conformance for each "job-state-reasons" value. 2553

8. Section 12.1 Conformance Requirements for this specification: Added "Reprocess-Job operation 2554 [RFC3998] to the list of REQUIRED operations for conformance to Set 2 Specification. 2555

18.23 2 November 2009 (v0.11) 2556

Edits made to the text and comments added during the IPP WG Telecon, 2-November-2009. Here are the 2557 minutes: 2558

e. th2: Agreed to Mike's update of the new summary paragraph in the Abstract. 2559

Page 88: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 88 of 96

f. Agreed to refer to the document as "Job and Printer Extensions Set 2 specification" instead of "Job 2560 and Printer Extensions Set 2 extension". 2561

g. th6: Agreed to change "possibly" to "optional" and "Resubmit-Jobs" to "Resubmit-Job" 2562 h. th11: Agreed to the text 2563 i. th12: Agreed to copy table 2564 j. th15: Agreed to the text 2565 k. th17: Agreed that it is OK to omit job-ids 2566 l. th7-th27: Agreed that the Cancel-Jobs and Cancel-My-Jobs descriptions are OK 2567 m. th30: Agreed that you can't resubmit an aborted job 2568 n. Agreed that we'll include an errata for RFC 3998's Reprocess-Job to disallow reprocessing of aborted 2569

jobs 2570 o. th36, th37R36: Agreed that "job-ids" is mutually-exclusive with "limit", "my-jobs", and "which-jobs", 2571

returning client-error-conflicting-attributes 2572 p. th42: Agreed to conformance wording 2573 q. th44, th45: Agreed that job-saved-with-warnings is an unsuccessful state 2574 r. th48, th52: Agreed to leave "save-name-subdirectory-supported" and "pdl-init-filename-subdirectory-2575

supported" in the job template section even though they are printer description attributes. 2576 s. th58, th59: Agreed to the existing text. 2577 t. th60, th61R60: Agreed to add proof-print keyword 2578 u. th62: Agreed to require the saved keyword if a printer supports saved jobs 2579 v. th64: Agreed to add conformance requirements to new job-state-reasons 2580 w. Agreed that the job-printed-*, job-saving, and job-saved-* keywords are required if saving is 2581

supported 2582 x. Agreed to drop the job-scheduling keyword from job-state-reasons since we don't have a good 2583

definition/justification/history for it 2584 y. Agreed to make job-spooling and job-streaming keywords dependent on job-spooling-supported 2585

values 2586 z. Agreed to make job-resuming, job-suspended-*, and job-suspending keywords dependent on the 2587

RFC 3998 Suspend-Current-Job and Resume-Job operations 2588 aa. th67: Ira volunteered to write draft of rationale and use cases 2589 bb. th68-th70: Rename Resubmit-My-Jobs to Resubmit-Job, drop requirement 6, add job-state-reasons 2590

and which-jobs references 2591 cc. th71: Agreed to spec and feature/operation conformance levels 2592 dd. th72: Agreed to the text 2593 ee. th73, th74: Agreed to review and update as needed 2594 ff. th75: Agreed to change "Author's Addresses" to "Editor's Addresses", drop editors from the document 2595

references, and update the list of participants and companies. 2596

18.24 25 October 2009 (v0.10) 2597

Edits made to carry out the agreements reach as the IPP WG telecon, 14 October 2009: 2598

1. Abstract: Add Cancel-My-Jobs and enhanced the descriptions of the operations. 2599

2. Section 2.2 Other terminology: Proof Print Job definition clarified to have a different aging policy than 2600 ordinary completed jobs. 2601

3. Section 5.1.1 Cancel-Jobs Request: Removed "my-jobs" operation attribute. 2602

4. Section 5.1.1 Cancel-Jobs Request: Clarified that the absence of "job-ids" means cancel all 2603 cancelable jobs. 2604

Page 89: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 89 of 96

5. Section 5.1.2 Cancel-Jobs Response: Clarified that the Printer only returned "job-ids" that can't be 2605 canceled if the client supplied them. 2606

6. Section 5.2 Cancel-My-Jobs operation: Added entire new section defining Cancel-My-Jobs, which also 2607 has the "job-ids" (1setOf integer(1:MAX)) operation attribute that specifies a list of the user's jobs to 2608 cancel. If omitted, all of the user's cancelable jobs are canceled. 2609

7. Section 5.2 Cancel-My-Jobs operation: If "job-ids" is omitted, all of the user's cancelable jobs are 2610 canceled. 2611

8. Section 5.2 Cancel-My-Jobs operation: Clarified that the precedence is jobs not belonging to the user 2612 are checked and returned if any don't belong to the user. Only if they all belong to the user, are their 2613 statuses checked and if any are not in a state that that can be canceled, they are returned in "job-ids" 2614 and no jobs are canceled. 2615

9. Section 6.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation: Added that the client MUST 2616 be able to supply "job-ids" and the Printer MUST support "job-ids" in order to claim support of this Job 2617 and Printer Extensions - Set 2 Specification. 2618

10. Section 6.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation: Added that the client MUST 2619 be able to supply "job-ids" and the Printer MUST support "job-ids" in order to claim support of this Job 2620 and Printer Extensions - Set 2 Specification. 2621

11. Section 7.11 proof-print (collection): Added that the aging period SHOULD be longer than that for 2622 ordinary jobs. 2623

12. Section 10.2 job-ids-supported (boolean): Added that a Printer MUST support "job-ids-supported" 2624 Printer Description attribute if it supports the "job-ids" Operation attribute for Get-Jobs, or Purge-Jobs, 2625 but removed any mention of Cancel-Jobs or Cancel-My-Jobs, where "job-ids" MUST be supported. 2626

13. Section 11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf 2627 type2 keyword) Printer Description attribute: Added 'proof-print' keyword so that the client can specify 2628 Proof Print Jobs in Get-Jobs, since we added 'saved' already. 2629

14. Section 12.1 Conformance Requirements for this specification: Added this summary of the now 2630 REQUIRED attributes and operations in order to conform to this document. 2631

15. Section 13 IANA Considerations: Added a number of attributes and keyword attribute values and one 2632 operation (Cancel-My-Jobs) that are in the spec, but were not yet in the IANA registrations section. 2633

18.25 14 October 2009 (v0.9) 2634

Edits made to the text and comments added during the IPP WG Telecon, 14-October-2009. Here are the minutes: 2635

a. Agreed to rename "IPP Production Printing Set 2" to "IPP Job and Printer Extensions Set 2" and 2636 reference existing IETF and PWG Job and Printer specs. 2637 b. Agreed to separate Cancel-Jobs into two operations - Cancel-My-Jobs (user operation) and Cancel-2638 Jobs (admin operation) 2639 c. For Cancel-My-Jobs, if any job is not owned by the user, client-error-not-authorized is returned 2640 d. For Cancel-Jobs and Cancel-My-Jobs, if any job is not cancelable, client-error-not-possible is 2641 returned. 2642

⁃ client-error-not-authorized has precedence over client-error-not-possible 2643

Page 90: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 90 of 96

18.26 8 October 2009 (v0.8) 2644

1. Abstract: added the two new operations: Cancel-Jobs and Resubmit-Job. 2645

2. Section 4.3 Job Save and Reprint : Added that a Printer that supports Job Save and Reprint, MUST 2646 support Proof Print. 2647

3. Section 4.4 Job Proof Print : If a Printer supports Proof Print, it NEED NOT support Job Save and 2648 Reprint Capability. 2649

4. Section 5 New REQUIRED Operations: Added this new section with complete Cancel-Job and 2650 Resubmit-Job operations. 2651

5. Section 6.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation: In the Get-Jobs operation, if 2652 the client supplies the “my-jobs” attribute with the ‘true’ value and also supplies, the “job-ids” operation 2653 attribute, the Printer MUST reject the request and return the ‘client-error-conflicting-attributes’ status 2654 code. 2655

6. Section 7.9 job-save-disposition (collection): Added: If Printer support "job-save-disposition", then it 2656 MUST also support "proof-print", but not the converse. 2657

7. Section 7.9.1.2.3.1 save-location (uri): Changed conformance for 'file:' in "save-location" from 2658 SHOULD to MAY. 2659

8. Section 7.9.1.2.3.2 save-name (name(MAX)): Added reference to the new "save-name-subdirectory-2660 supported" Printer attribute that indicates whether the Printer supports FORWARD-SLASH in the 2661 "save-name". 2662

9. Section 7.10.1.2.2 pdl-init-file-name-subdirectory-supported (boolean): Added new "pdl-init-file-name-2663 subdirectory-supported" Printer Description attribute to indicate whether or not FORWARD-SLASH 2664 was supported in the "pdl-init-file-name" member attribute. 2665

10. Section 7.11 proof-print (collection): Added that Proof Print Jobs can be aged out, but MAY be longer 2666 than ordinary jobs. 2667

11. Section 11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute: Removed 'job-proof-2668 wait'. 2669

18.27 5 October 2009 (v0.7) 2670

Edits made to the text and comments added during the IPP WG Telecon, 5-October-2009. Here are the minutes: 2671

Discussion of Cancel-Job/Purge-Jobs extensions: 2672

a. Agreed that a new operation called Cancel-Jobs is preferred to overloading Purge-Jobs or Cancel-Job 2673

⁃ Required printer-uri 2674

⁃ Optional job-ids (1setOf integer) or my-jobs (boolean) operation attributes 2675

b. Agreed to add the job-ids (1setOf integer) operation attribute to Purge-Jobs for purging selected jobs 2676

c. Agreed to add the job-ids (1setOf integer) operation attribute to Get-Jobs for getting selected jobs 2677

Page 91: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 91 of 96

d. New jobs-ids-supported (boolean) printer description attribute 2678

Review IPP Production Printing Set2 (Tom): 2679

a. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v6-20091004.pdf 2680

b. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v6-20091004-rev.pdf 2681

c. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v6-20091004.doc 2682

d. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v6-20091004-rev.doc 2683

e. Agreed that new Cancel-Jobs operation will replace all use of Purge-Jobs by ordinary users 2684

f. Agreed that users can save proofed jobs 2685

g. Agreed to eliminate Purge-Jobs tables 2686

h. Agreed that saved jobs in the aborted state cannot be reprocessed or resubmitted 2687

i. Agreed that http scheme support is a SHOULD and file scheme support is a MAY 2688

j. Agreed to remove discussion of concatenating save-name and save-location 2689

k. Agreed to update discussion of sub-directories and slashes in save-name - implementation defined, 2690 may depend on the save-location, printer will return client-error-attributes-or-values-not-supported 2691

l. Agreed to remove hard-proof discussion; if save job is supported, proof job must also be supported 2692

m. Agreed that you can't supply document-format to Resubmit-Job 2693

n. Agreed to update pdl-init-file-name like save-name 2694

o. Agreed to the updated proof-print (collection) description 2695

p. Agreed that proof-print jobs can be "aged out" like ordinary jobs (although they may live longer than 2696 ordinary jobs) 2697

q. Agreed that proof-print jobs end up in the completed state, not pending-held 2698

r. Agreed that the operation can resubmit proof-print jobs with a higher priority to get the job printed first 2699 - no need for extended discussion 2700

s. Agreed to the removal of copies of existing standard text 2701

t. Agreed to the removal of the proof-print-wait state reason 2702

u. Agreed to add job-printed-successfully, job-printed-with-errors, job-printed-with-warnings, job-saved-2703 with-errors (replaces job-save-error), job-saved-with-warnings job-state-reason keywords 2704

v. Agreed to remove the new definitions of job-completed-successfully, job-completed-with-warnings, and 2705 job-completed-with-errors 2706

Page 92: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 92 of 96

w. Agreed to add a footnote describing relationship of job-completed-xx, job-printed-xx, and job-saved-2707 xx. 2708

x. Agreed to updated list of media-type member attribute values 2709

y. Agreed that both Reprocess-Job and Resubmit-Job are REQUIRED 2710

18.28 4 October 2009 (v0.6) 2711

Drafted text to follow the agreements made at the 2009-09-14 IPP WG meeting (see v0.5 log) below: 2712

1. Section 2.2 Other terminology: Removed the terms: “Actual File Name” and “Virtual File Name”, since the 2713 “job-save-disposition” / “save-info” / “save-location” and “job-save-disposition” / “save-info” / “save-name” 2714 are no-longer concatenated to form a URL that is used in Print-URI to reference the Saved Job. 2715

2. Section 2.2 Other terminology: Clarified the terms: “Proof Print Job”, “Retained Job”, and “Saved Job” with 2716 respect to the Delete-Job and Purge-Jobs operations and the Reprocess-Job and Resubmit-Jobs 2717 operations. 2718

3. Section 4.3.1 Reprinting Saved Jobs: Clarified how reprinting works with Reprocess-Job and Resubmit-Job 2719 operations. 2720

4. Section 4.4 Job Proof Print : Added this parallel section to describe re-printing a Proof Job which is now 2721 quite parallel to re-printing a Saved Job. 2722

5. Section 5.1 Cancel-Jobs operation: Added this section that adds the “purge-jobs” (boolean) operation 2723 attribute to the Cancel-Job operation. 2724

6. Section 6.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation: Added this section that adds the 2725 “my-jobs” (boolean) and “purge-jobs” (boolean) operation attributes to the Purge-Jobs operation. 2726

7. Section 7.7 job-phone-number (uri): Clarified the Printer requirements. 2727

8. Section 7.8 job-recipient-name (name(MAX)): Rearranged the text. 2728

9. Section 7.9 job-save-disposition (collection): Changed SHOULD to MUST that the Printer MUST be able 2729 to process a document format for reprint for any format that it is able to save the job. 2730

10. Section 7.9.1.1 save-disposition (type3 keyword): Changed ‘save-only’ from applying to Print-URI to 2731 applying to Reprocess-Job and Resubmit-Job operations. 2732

11. Section 7.9.1.2.3.1 save-location (uri) Table 9: Added ‘http’ URI Scheme for saving jobs. 2733

12. Section 7.9.1.2.3.2 save-name (name(MAX)): Removed the discussion about Virtual File Name, since the 2734 “job-id” or “job-uri” is used to reference Saved Jobs, not a URL. 2735

13. Section 7.9.1.2.3.3 save-document-format (mimeMediaType): Clarified that any convenient, fast, and/or 2736 compact re-printing format NEED NOT be identified by a distinct mimeMediaType value. 2737

14. Section 7.9.1.2.3.3 save-document-format (mimeMediaType): Clarified the discussion of a manual “hard-2738 proof” using “job-save-disposition”, followed by Reprocess-Job or Resubmit-Job. 2739

Page 93: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 93 of 96

15. Section 7.9.1.2.3.3.2 save-document-format-supported (1setOf mimeMediaType): Clarified that the 2740 Printer MUST support any “document-format” value supplied in the Resubmit-Job operation that is 2741 contained in the “save-document-format-supported” Printer attribute. 2742

16. Section 7.10.1.2 pdl-init-file-name (name(MAX)): Removed the reference to Virtual File name and use the 2743 term “file path”. 2744

17. Section 7.11 proof-print (collection): Added that the client SHOULD provide a convenient means for the 2745 user to remove a Proof Print Job after requesting a copy to be printed, now that the Printer doesn’t 2746 automatically remove a Proof Print Job when a copy is re-printed using Reprocess-Job or Resubmit-Job 2747 operation. 2748

18. Section 7.11.1.1 proof-print-copies (integer (0:MAX)): Clarified that the Proof Print Job is transitioned to 2749 ‘completed’ after the proofs are printed successfully, rather than to the ‘pending-held’ state. 2750

19. Section 11 Additional Values and Semantics for Existing IPP Attributes: Removed all text that existed in 2751 other IPP standards, so that only the new text remains. 2752

20. Section 11.4 Additional keyword values for the “media-type” member attribute: Removed the ‘proof-print-2753 wait’ value, since a Proof Print Job now goes to completion after printing the proofs, rather than the 2754 ‘pending-held’. 2755

21. Section 11.4 Additional keyword values for the “media-type” member attribute: Added values from 2756 [JDF1.4] Media/@MediaType and Media/@MediaTypeDetails attributes that are not already in 2757 [PWG5100.3]. 2758

22. Section 12.4.1 Client Conformance Requirements for the : Added that the Printer MUST support 2759 Reprocess-Job and (new) Resubmit-Job if it support the Job Save and Reprint Capability (instead of Print-2760 URI operation). 2761

23. Section 12.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute: Added ‘http; to 2762 the SHOULD list for the Printer to support. 2763

24. Section 12.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute: Removed that 2764 the Printer MUST support the Printer-URI operation. 2765

25. Section 13 IANA Considerations: Updated to agree with the above changes. 2766

18.29 14 September 2009 (v0.5) 2767

Edits made to the text and comments added during the IPP WG Telecon, 14-September-2009. Here are the 2768 minutes: 2769

a. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v4-20090906.pdf 2770

b. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v4-20090906-rev.pdf 2771

c. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v4-20090906.doc 2772

d. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v4-20090906-rev.doc 2773

e. Agreed that job-save-printer-make-and-model is the correct name for the table. 2774

Page 94: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 94 of 96

f. Updated and accepted the new definitions for Proof Print Job, Retained Job, and Saved Job. 2775

g. Agreed to add a way to purge jobs with Cancel-Job operator and to clarify that Purge-Jobs can be 2776 performed by a non-operator to purge only that user's jobs - Mike to provide current CUPS extensions 2777

h. Accepted the description for 3.3 Job Save and Reprint Capability. 2778

i. Updated and accepted the description for 3.3.1.1 Reprinting using the Reprocess-Job operation 2779

j. Updated and accepted the description for 3.3.1.2 Reprinting using the Resubmit-Job operation 2780

k. Updated and accepted the descriptions for 5.5 job-phone-number (uri), 5.5.1 job-phone-number-default, 2781 and 5.5.2 job-phone-number-supported 2782

l. Updated and accepted that a printer MUST be able to process any document format that is available as a 2783 saved document format (5.7 job-save-disposition (collection)) 2784

m. Updated and accepted the new description text for 5.7.1.1 save-disposition (type3 keyword) 2785

n. Updated and conditionally accepted the description for 5.7.1.2.3.2 save-name (name(MAX)) (pending 2786 "handle" term changes) 2787

o. Agreed that the term "handle" needs to be changed when referring to the save-location and save-name 2788 attributes (virtual file names) 2789

p. Updated and agreed to the new description for 5.7.1.2.3.3 save-document-format (mimeMediaType) 2790

q. Agreed that for 5.9 proof-print (collection), the printer does not age out the job once it is reprinted. 2791

r. Agreed that we will not list keyword values from other specifications unless new meaning is added. 2792

s. Agreed to the additions to 8.5.1 media-tooth (type3 keyword | name(MAX)) 2793

t. Need to verify the operation code for Resubmit-Job 2794

18.30 10 September 2009 (v0.4) 2795

Drafted text to follow the agreements made at the 2009-09-01 IPP WG meeting (see v0.3 log) below: 2796

1. Section 1 Introduction: Changed “job-printer-make-and-model” to “job-save-printer-make-and model” to 2797 agree with section 9.1 2798

2. Section 2.2 Other terminology: added definitions for Proof Print Job, Retained Job, and Saved Job. 2799

3. Section 4.3 Job Save and Reprint : A Saved Job is a special case of a Retained job. 2800

4. Section 4.3.1.1 Reprinting using the Reprocess-Job operation: Added additional semantics of the existing 2801 [RFC3998] Reprocess-Job operation when reprinting a Saved Job. Removed the Print-URI operation from 2802 this document, since it won’t be used for reprinting Saved Jobs. 2803

5. Section 4.3.1.2 Reprinting using the Resubmit-Job operation: Added the semantics for the new Resubmit-2804 Job operation. 2805

6. Section 7.7 job-phone-number (uri): changed the data type from text(127) to uri and added that the Printer 2806 MUST support the ‘tel:’ URI scheme and MAY support others, such as “fax:’. 2807

Page 95: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 95 of 96

7. Section 7.9.1.1 save-disposition (type3 keyword): Added that the “job-save-disposition” is NOT copied 2808 from the Saved Job to the job copy, so that the job is NOT re-saved. 2809

8. Section 7.9.1.2.3.2 save-name (name(MAX)): Replaced the error condition when a supplied “save-name” 2810 already exists, with the requirement that the Printer MUST save the job even if the “save-name” already 2811 exists, since the “job-id” is what distinguishes Saved Jobs. 2812

9. Section 7.9.1.2.3.3 save-document-format (mimeMediaType): Added that the Printer is free to store saved 2813 data in any form for convenient, fast, and/or compact, in addition to the format indicated by the “save-2814 document-format” attribute. 2815

10. Section 7.11 proof-print (collection): Proof Print Job is a Retained Job with the “proof-print” attribute 2816 included. When the Proof Print Job is reprinted, the “proof-print” attribute is not copied to the job of the job 2817 and the Proof Print Job is then aged out as usual. 2818

11. Section 10.3 job-password-supported (integer(0:255)): change the data type from integer(0:127) to 2819 integer(0:255), since the password can be 255 octets long. 2820

12. Section 11.4 Additional keyword values for the “media-type” member attribute - Added a large number of 2821 keywords from [JDF1.4] MediaType and MediaTypeDetails, including the five keywords from “media-2822 material” ('aluminum', 'dry-film', 'paper', 'polyester', 'wet-film') and removed the “media-material” attribute 2823 altogether. 2824

13. Section 11.5.1 media-tooth (type3 keyword | name(MAX)): Added ‘antique’, ‘calendared’, ‘linen’, ‘smooth’, 2825 ‘stipple‘, ‘uncalendared’, and ‘vellum’ keywords from [JDF1.4]. 2826

14. Section 13 IANA Considerations: Add IANA Registrations - work in progress. 2827

15. Section 16 References: Added [JDF1.4] 2828

18.31 1 September 2009 (v0.3): 2829

Agreements made at the IPP WG meeting: 2830 • Agreed that using “job-id” integer(1:MAX) has the handle to uniquely identify saved jobs in a Printer 2831 context makes sense, instead of “document-uri” (uri). 2832 • Agreed that job reprint will be done using one of two operations; 2833

⁃ Resubmit-Job (new) will print a saved job using the same job template attributes as the saved 2834 job, creating a new job (and job ID). 2835 ⁃ Reprocess-Job (defined in RFC 3998) will print a saved job, optionally with new job template 2836 attributes different from the saved job, creating a new job (and job ID). 2837

• Agreed that a job-state-reasons keyword is preferable to a new boolean attribute specifying that a job is 2838 saved, since existing clients already look at job-state-reasons but won't know to look at the new attribute. 2839 • Agreed that job-phone-number should be a tel: URI with fax: as a MAY. 2840 • Lots of discussion about the job-save-disposition: 2841

⁃ Agreed that save-disposition is only used the first time - the job is not re-saved if re-submitted, 2842 re-processed, or re-started. 2843 ⁃ Agreed that save-disposition does not create a new job-id. Instead, the job-state-reasons attribute 2844 will contain the job-saving, job-saved-successfully, or job-save-error keywords. 2845 ⁃ Agreed to keep the save-location member attribute since it allows the client to specify where the 2846 job pool is located. 2847 ⁃ Agreed that the save-name + save-location paragraph concerning existing files needs to be 2848 rewritten. 2849

• Agreed that proof-print is only used the first time - the job is not re-proofed if re-submitted, re-processed, 2850 or re-started. 2851 • Agreed that job-saving, job-saved-successfully, and job-save-error should remain. 2852

Page 96: Standard for Internet Printing Protocol (IPP): Job and ...ftp.pwg.org/pub/pwg/...20101107-change-tracked-v37.pdf · Copyright © 2010, Printer Working Group. All rights reserved

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) September 27November 7, 2010

Copyright © 2010, Printer Working Group. All rights reserved. Page 96 of 96

18.32 3 August 2009 (v0.2) 2853

Changes made to create Prototype Draft - Tom Hastings 2854

Referenced [PWG5100.3] Production Printing Attributes - Set 1 in the Abstract to show the relationship of 2855 this document to that document. 2856

Formatted the boiler plate to follow current PWG practices 2857

Added line numbers 2858

Updated the cross references to current documents - no change tracking 2859

Added Figure 1 caption to Figure 1 and added Table of Figures 2860

Added the missing IANA Registrations - using change tracking 2861

Updated Editors’ addresses and phone numbers. 2862

Removed Summary of other IPP documents 2863

18.33 21 August 2002 [sic] (v0.1) 2864

Initial Draft - Tom Hastings and Don Fullman 2865

2866

2867