standard for internet printing protocol (ipp): job and ... · copyright © 2010, printer working...

96
Copyright © 2010, Printer Working Group. All rights reserved. 1 2 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

Upload: others

Post on 23-Feb-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

Page 2: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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

Page 21: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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

Page 22: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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

Page 24: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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

Page 26: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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

Page 27: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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

Page 52: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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

Page 70: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 if they support the OPTIONAL "job-1873 save-disposition" Job Template attribute. It also defines the conformance requirements for Job Save Format 1874 specifications. 1875

12.4.1 Client Conformance Requirements for the 'job-save-disposition" attribute 1876

In order to claim conformance for the OPTIONAL "job-save-dispositions" Job Template attribute, clients: 1877

1. MUST support the “job-save-disposition” (collection) attribute according to the description in section 7.9, 1878 including the member attributes as REQUIRED by Table 7. 1879

2. MUST support the “save-info” (collection) member attribute according to the "job-save-disposition" 1880 attribute description in section 7.9, including the member attributes as REQUIRED by Table 8. 1881

Page 71: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

3. MUST support the Reprocess-Job and Resubmit-Job operations for printing saved jobs according to 1882 section 4.3 above. 1883

12.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute 1884

In order to claim conformance for the OPTIONAL "job-save-dispositions" Job Template attribute, Printers: 1885

1. MUST support the “job-save-disposition” (collection) Job Template attribute according to the description in 1886 section 7.9, including the member attributes as REQUIRED by Table 7 and the “job-save-disposition-1887 default” attribute and the “job-save-disposition-supported” attribute. 1888

2. MUST support all of the “save-disposition” member attribute values defined in the "job-save-disposition" 1889 description section 7.9. 1890

3. MUST support the “save-info” (collection) member attribute according to the "job-save-disposition" 1891 attribute description in section 7.9, including the member attributes as REQUIRED by Table 8 and the 1892 “save-location-supported”, “save-name-supported”, “save-document-format-supported”, and “save-info-1893 supported” Printer attributes. 1894

4. SHOULD support the ‘ftp:’, and ‘http:’ schemes and MAY support 'file:' scheme for use in the “save-1895 location” member attribute as defined in the "job-save-disposition" attribute description in section 7.9. 1896

5. MUST support at least one “save-document-format” (mimeMediaType) attribute value, as defined in the 1897 "job-save-disposition" attribute description in section 7.9, for use in the “save-document-format” member 1898 attribute. 1899

6. SHOULD support a superset of the values of the Printer’s “save-document-format-supported” attribute 1900 (section 7.9.1.2.3.3.2) as the values of the Printer’s “document-format-supported” attribute ([RFC2911] 1901 section 4.4.22). 1902

7. MUST support the "job-save-printer-make-and-model" Job Description attribute (see section 9.1). 1903

8. MUST support the "which-jobs-supported" Printer Description attribute (see section 10.9) and the 'saved' 1904 keyword values (see section 11.2). 1905

9. MUST support the ‘job-saving’, 'job-saved-successfully', 'job-saved-with-warnings', and ‘job-saved-with-1906 errors’ values of the “job-state-reasons” Job Description attribute as defined in the "job-state-reasons" 1907 attribute description in section 11.3. 1908

12.4.2.1 Job Save Format Specification Conformance Requirements 1909

Documents that define a Job Save format MUST contain the following information: 1910

1. MUST specify the mimeMediaType value that identifies the Job Save Format, e.g., 'application/X-single-1911 page-tiff'. 1912

2. MUST define the representation for PDL data. 1913

3. MUST specify the formats of the document content and how the Job Save Format file references the 1914 document content, e.g., using Relative URI value (see [RFC2396]) to reference the document content in 1915 the “document-uri” operation attribute. 1916

Page 72: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

4. MUST define whether or not Printers with differing values of their “printer-make-and-model” Printer 1917 attributes are expected to print saved jobs with the same appearance, i.e., whether or not a Printer MUST 1918 omit the “job-printer-make-and-model” Job Description attribute when saving the job in the defined format 1919 (see the "job-printer-make-and-model" attribute description in section 9.1). 1920

12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template attribute 1921

Conforming Printers and clients MUST support the REQUIRED "proof-print" Job Template attribute. 1922

12.5.1 Client Conformance Requirements for the 'proof-print" attribute 1923

Conforming clients: 1924

1. MUST support the “proof-print” (collection) attribute according to the description in section 7.11, including 1925 the member attributes as REQUIRED by Table 12. 1926

2. MUST support the Reprocess-Job and Resubmit-Job operations for printing saved jobs according to 1927 section 4.4 above. 1928

12.5.2 Printer Conformance Requirements for the 'proof-print" attribute 1929

Conforming Printers: 1930

1. MUST support the “proof-print” (collection) Job Template attribute according to the description in section 1931 7.11, including the member attributes as REQUIRED by Table 12 and the “proof-print-default” attribute and 1932 the “proof-print-supported” attribute. 1933

2. MUST support the "which-jobs-supported" Printer Description attribute (see section 10.9) and the 'saved' 1934 keyword values (see section 11.2). 1935

13 IANA Considerations 1936

1937

13.1 Attribute Registration 1938

The attributes defined in this document will be published by IANA according to the procedures in RFC 2911 1939 [RFC2911] section 6.2 in the following file: 1940

http://www.iana.org/assignments/ipp-registrations 1941

The registry entry will contain the following information: 1942 1943 Job Template attributes: Reference 1944 ----------------------- --------- 1945 feed-orientation (type3 keyword) [pwg5100.11] 1946 feed-orientation-default (type3 keyword) [pwg5100.11] 1947 feed-orientation-supported (1setOf (type3 keyword)) [pwg5100.11] 1948 font-name-requested (name(MAX)) [pwg5100.11] 1949 font-name-requested-default (name(MAX)) [pwg5100.11] 1950

Page 73: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

font-name-requested-supported (1setOf name(MAX)) [pwg5100.11] 1951 font-size-requested (integer (1:MAX)) [pwg5100.11] 1952 font-size-requested-default (integer (1:MAX)) [pwg5100.11] 1953 font-size-requested-supported (1setOf rangeOfInteger (1:MAX))[pwg5100.11] 1954 job-delay-output-until (type3 keyword | name(MAX)) [pwg5100.11] 1955 job-delay-output-until-default (type3 keyword | name(MAX)) [pwg5100.11] 1956 job-delay-output-until-supported (1setOf (type3 keyword | 1957 name(MAX)) [pwg5100.11] 1958 job-delay-output-until-time (dateTime) [pwg5100.11] 1959 job-delay-output-until-time-supported (rangeOfInteger(0:MAX))[pwg5100.11] 1960 job-hold-until-time (dateTime) [pwg5100.11] 1961 job-hold-until-time-supported (rangeOfInteger(0:MAX) [pwg5100.11] 1962 job-phone-number (uri) [pwg5100.11] 1963 job-phone-number-default (uri) [pwg5100.11] 1964 job-phone-number-supported (boolean) [pwg5100.11] 1965 job-recipient-name (name(MAX)) [pwg5100.11] 1966 job-recipient-name-default (name(MAX)) [pwg5100.11] 1967 job-recipient-name-supported (boolean) [pwg5100.11] 1968 job-save-disposition (collection) [pwg5100.11] 1969 save-disposition (type3 keyword) [pwg5100.11] 1970 save-disposition-supported (1setOf (type3 keyword)) [pwg5100.11] 1971 save-info (1setOf collection) [pwg5100.11] 1972 save-document-format (mimeMediaType) [pwg5100.11] 1973 save-document-format-default (mimeMediaType) [pwg5100.11] 1974 save-document-format-supported (1setOf mimeMediaType) [pwg5100.11] 1975 save-location (uri) [pwg5100.11] 1976 save-location-default (uri) [pwg5100.11] 1977 save-location-supported (1setOf uri) [pwg5100.11] 1978 save-name (name (MAX)) [pwg5100.11] 1979 save-name-supported (boolean) [pwg5100.11] 1980 1981 pdl-init-file (1setOf collection) [pwg5100.11] 1982 pdl-init-file-default (1setOf collection) [pwg5100.11] 1983 pdl-init-file-supported (1setOf type2 keyword) [pwg5100.11] 1984 pdl-init-file-entry (name(MAX)) [pwg5100.11] 1985 pdl-init-file-entry-supported (1setOf name(MAX)) [pwg5100.11] 1986 pdl-init-file-location (uri) [pwg5100.11] 1987 pdl-init-file-location-supported (1setOf uri) [pwg5100.11] 1988 pdl-init-file-name (name(MAX)) [pwg5100.11] 1989 pdl-init-file-name-supported (1setOf name(MAX)) [pwg5100.11] 1990 1991 proof-print (collection) [pwg5100.11] 1992 proof-print-default (collection) [pwg5100.11] 1993 proof-print-supported (1setOf type2 keyword) [pwg5100.11] 1994 media (type3 keyword | name(MAX)) [pwg5100.11] 1995 media-col (collection) [pwg5100.11] 1996 proof-print-copies (integer (0:MAX)) [pwg5100.11] 1997 1998 media-col (collection) [pwg5100.11] 1999 media-grain (type3 keyword | name(MAX)) [pwg5100.11] 2000 media-thickness (integer(1:MAX)) [pwg5100.11] 2001 media-tooth (type3 keyword | name(MAX)) [pwg5100.11] 2002 2003 Operation attributes: Reference 2004 --------- 2005 job-ids (1setOf integer(1:MAX)) [pwg5100.11] 2006 job-password (octetString(255)) [pwg5100.11] 2007 job-password-encryption (type3 keyword | name(MAX)) [pwg5100.11] 2008

Page 74: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

2009 Job Description attributes: Reference 2010 --------- 2011 job-save-printer-make-and-model (text(127)) [pwg5100.11] 2012 2013 Printer Description attributes: Reference 2014 --------- 2015 job-creation-attributes-supported (1setOf type2 keyword) [pwg5100.11] 2016 job-ids-supported (boolean) [pwg5100.11] 2017 job-password-supported (integer(0:255)) [pwg5100.11] 2018 job-password-encryption-supported (1setOf (type3 keyword | 2019 name(MAX))) [pwg5100.11] 2020 save-name-subdirectory-supported (boolean) [pwg5100.11] 2021 job-spooling-supported (type2 keyword) [pwg5100.11] 2022 max-save-info-supported (integer(1:MAX)) [pwg5100.11] 2023 media-col-database (1setOf collection) [pwg5100.11] 2024 pdl-init-file-name-subdirectory-supported (boolean) [pwg5100.11] 2025 printer-detailed-status-messages (1setOf text(MAX)) [pwg5100.11] 2026 which-jobs-supported (1setOf type2 keyword) [pwg5100.11] 2027 2028

13.2 Attribute Value Registration 2029

The “document-format” mimeMediaType attribute values, the “pdl-override-supported” type2, “which-jobs” type2, 2030 and “job-state-reasons” type2 keyword attribute values defined in this document will be published by IANA 2031 according to the procedures in RFC 2911 [RFC2911] section 6.1 in the following file: 2032

http://www.iana.org/assignments/ipp-registrations 2033

The registry entries will contain the following information: 2034 2035 feed-orientation (type3 keyword) [pwg5100.11] 2036 feed-orientation-supported (1setOf type3 keyword) [pwg5100.11] 2037 long-edge-first [pwg5100.11] 2038 short-edge-first [pwg5100.11] 2039 2040 job-creation-attributes-supported (1setOf type2 keyword) [pwg5100.11] 2041 <all job template attributes supported at the job level> 2042 <all operation attributes supported at the job level> 2043 2044 job-password-encryption (type3 keyword | name(MAX)) [pwg5100.11] 2045 job-password-encryption-supported (1setOf (type3 keyword | name(MAX))) 2046 [pwg5100.11] 2047 md2 [pwg5100.11] 2048 md4 [pwg5100.11] 2049 md5 [pwg5100.11] 2050 none [pwg5100.11] 2051 sha [pwg5100.11] 2052 2053 job-save-disposition-supported (1setOf type2 keyword) [pwg5100.11] 2054 save-disposition [pwg5100.11] 2055 save-info [pwg5100.11] 2056 2057 job-spooling-supported (type2 keyword) [pwg5100.11] 2058 automatic [pwg5100.11] 2059 spool [pwg5100.11] 2060 stream [pwg5100.11] 2061 2062

Page 75: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

job-state-reasons (type2 keyword): [pwg5100.11] 2063 job-delay-output-until-specified [pwg5100.11] 2064 job-password-wait [pwg5100.11] 2065 job-printed-successfully [pwg5100.11] 2066 job-printed-with-errors [pwg5100.11] 2067 job-printed-with-warnings [pwg5100.11] 2068 job-resuming [pwg5100.11] 2069 job-saved-successfully [pwg5100.11] 2070 job-saved-with-errors [pwg5100.11] 2071 job-saved-with-warnings [pwg5100.11] 2072 job-saving [pwg5100.11] 2073 job-spooling [pwg5100.11] 2074 job-streaming [pwg5100.11] 2075 job-suspended-by-operator [pwg5100.11] 2076 job-suspended-by-system [pwg5100.11] 2077 job-suspended-by-user [pwg5100.11] 2078 job-suspending [pwg5100.11] 2079 2080 media-grain (type3 keyword | name(MAX)) [pwg5100.11] 2081 media-grain-supported (1setOf (type3 keyword | name(MAX))) [pwg5100.11] 2082 x-direction [pwg5100.11] 2083 y-direction [pwg5100.11] 2084 media-tooth (type3 keyword | name(MAX)) [pwg5100.11] 2085 media-tooth-supported (1setOf (type3 keyword | name(MAX))) [pwg5100.11] 2086 antique [pwg5100.11] 2087 calendared [pwg5100.11] 2088 coarse [pwg5100.11] 2089 fine [pwg5100.11] 2090 linen [pwg5100.11] 2091 medium [pwg5100.11] 2092 smooth [pwg5100.11] 2093 stipple [pwg5100.11] 2094 uncalendared [pwg5100.11] 2095 vellum [pwg5100.11] 2096 media-type (type2 keyword) [pwg5100.11] 2097 media-type-supported (1setOf type2 keyword) [pwg5100.11] 2098 aluminum [pwg5100.11] 2099 cardboard [pwg5100.11] 2100 cd [pwg5100.11] 2101 corrugated-board [pwg5100.11] 2102 disc [pwg5100.11] 2103 double-wall [pwg5100.11] 2104 dry-film [pwg5100.11] 2105 dvd [pwg5100.11] 2106 end-board [pwg5100.11] 2107 embossing-foil [pwg5100.11] 2108 film [pwg5100.11] 2109 flexo-base [pwg5100.11] 2110 flexo-photo-polymer [pwg5100.11] 2111 flute [pwg5100.11] 2112 foil [pwg5100.11] 2113 gravure-cylinder [pwg5100.11] 2114 image-setter-paper [pwg5100.11] 2115 imaging-cylinder [pwg5100.11] 2116 laminating-foil [pwg5100.11] 2117 letterhead [pwg5100.11] 2118 mounting-tape [pwg5100.11] 2119 other [pwg5100.11] 2120

Page 76: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

paper [pwg5100.11] 2121 plate [pwg5100.11] 2122 polyester [pwg5100.11] 2123 screen [pwg5100.11] 2124 self-adhesive [pwg5100.11] 2125 single-face [pwg5100.11] 2126 single-wall [pwg5100.11] 2127 sleeve [pwg5100.11] 2128 shrink-foil [pwg5100.11] 2129 tractor [pwg5100.11] 2130 triple-wall [pwg5100.11] 2131 wet-film [pwg5100.11] 2132 2133 pdl-init-file-supported (1setOf type2 keyword) [pwg5100.11] 2134 pdl-init-file-entry [pwg5100.11] 2135 pdl-init-file-location [pwg5100.11] 2136 pdl-init-file-name [pwg5100.11] 2137 2138 pdl-override-supported (type2 keyword): [pwg5100.11] 2139 guaranteed [pwg5100.11] 2140 2141 proof-print-supported (1setOf type2 keyword) [pwg5100.11] 2142 media [pwg5100.11] 2143 media-col [pwg5100.11] 2144 proof-print-copies [pwg5100.11] 2145 2146 save-disposition (type3 keyword) [pwg5100.11] 2147 save-disposition-supported (1setOf type3 keyword) [pwg5100.11] 2148 none [pwg5100.11] 2149 print-save [pwg5100.11] 2150 save-only [pwg5100.11] 2151 2152 save-info-supported (1setOf type2 keyword) [pwg5100.11] 2153 save-document-format [pwg5100.11] 2154 save-location [pwg5100.11] 2155 save-name [pwg5100.11] 2156 2157 which-jobs (type2 keyword) [pwg5100.11] 2158 which-jobs-supported (1setOf type2 keyword) [pwg5100.11] 2159 aborted [pwg5100.11] 2160 all [pwg5100.11] 2161 canceled [pwg5100.11] 2162 pending [pwg5100.11] 2163 pending-held [pwg5100.11] 2164 processing [pwg5100.11] 2165 processing-stopped [pwg5100.11] 2166 proof-print [pwg5100.11] 2167 saved [pwg5100.11] 2168 2169

Page 77: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

13.3 Type2 enum attribute value registrations 2170

2171 Attribute (attribute syntax) 2172 Enum Value Enum Symbolic Name Reference 2173 ---------- ------------------ --------- 2174 operations-supported (1setOf type2 enum) [pwg5100.11] 2175 0x0038 Cancel-Jobs [pwg5100.11] 2176 0x0039 Cancel-My-Jobs [pwg5100.11] 2177 0x003B Close-Job [pwg5100.11] 2178 0x003A Resubmit-Job [pwg5100.11] 2179 2180 2181

13.4 Operation registrations 2182

Operation Name Reference 2183 -------------------------------------- --------- 2184 Cancel-Jobs [pwg5100.11] 2185 Cancel-My-Jobs [pwg5100.11] 2186 Close-Job [pwg5100.11] 2187 Resubmit-Job [pwg5100.11] 2188

2189

14 Internationalization Considerations 2190

The IPP extensions defined in this document require the same internationalization considerations as any of the 2191 Job Template attributes defined in IPP/1.1 [RFC2911]. 2192

15 Security Considerations 2193

The IPP extensions defined in this document require the same security considerations as any of the Job Template 2194 attributes defined in IPP/1.1 [RFC2911]. 2195

16 References 2196

16.1 Normative References 2197

This section lists references to documents whose implementation are REQUIRED in order to conform to this 2198 specification. 2199

[JDF1.4] 2200 CIP4, Job Definition Format (JDF), 10 November 2008, http://www.cip4.org. 2201

[PWG5100.3] 2202 “Internet Printing Protocol (IPP): Production Printing Attributes – Set 1”, PWG 5100.3-2001, February 12, 2203

2001, ftp://ftp.pwg.org/pub/pwg/candidates/cs-ippprodprint10-20010212-5100.3.pdf. 2204

[RFC2119] 2205 "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119 , March 1997 2206

Page 78: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

[RFC2806] 2207 “URLs for Telephone Calls”, RFC 2806, April 2000. 2208

[RFC2910] 2209 "Internet Printing Protocol/1.1: Encoding and Transport", RFC 2910, September 2000. 2210

[RFC2911] 2211 "Internet Printing Protocol/1.1: Model and Semantics", RFC 2911, September 2000. 2212

[RFC3382] 2213 "Internet Printing Protocol (IPP): The ‘collection’ attribute syntax", RFC 3382, September 2002. 2214

16.2 Informative References 2215

This section lists references to documents that provide information, but whose implementation is NOT REQUIRED 2216 in order to conform to this specification. 2217

[ISO10175] 2218 ISO/IEC 10175 Document Printing Application (DPA), June 1996. 2219

[PWG5100.5] 2220 "Internet Printing Protocol (IPP): Document Object", IEEE-ISTO 5100.5-2003, 2221

ftp://ftp.pwg.org/pub/pwg/candidates/cs-ipppdocumentobject10-20031031-5100.5.pdf, October 31, 2003. 2222

[PWG5100.6] 2223 "Internet Printing Protocol (IPP): Page Overrides", IEEE-ISTO 5100.6-2003, 2224

ftp://ftp.pwg.org/pub/pwg/candidates/cs-ipppageoverride10-20031031-5100.6.pdf, October 31, 2003. 2225

[PWG5100.7] 2226 PWG Candidate Standard 5100.7, IPP Job Extensions, PWG 5100.7, October 2003. 2227

ftp://ftp.pwg.org/pub/pwg/candidates/cs-ippjobext10-20031031-5100.7.pdf, .doc 2228

[PWG-PROC] 2229 "PWG Process: Definition of the Standards Development Process", Version 3.0, PWG Process, 2230

ftp://ftp.pwg.org/pub/pwg/general/pwg-process-30.pdf, January 1, 2009. 2231

[RFC2565] 2232 "Internet Printing Protocol/1.0: Encoding and Transport", RFC 2565, April 1999. 2233

[RFC2566] 2234 "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, April 1999. 2235

[RFC2567] 2236 "Design Goals for an Internet Printing Protocol, RFC 2567, April 1999. 2237

[RFC2568] 2238 "Rationale for the Structure of the Model and Protocol for the Internet Printing Protocol", RFC 2568, April 2239

1999. 2240

[RFC3380] 2241 "Internet Printing Protocol (IPP): Job and Printer Set Operations", RFC 3380, September 2002. 2242

Page 79: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

[RFC3998] 2243 "Internet Printing Protocol (IPP): Job and Printer Administrative Operations", RFC 3998, March 2005. 2244

17 Editor's Addresses 2245

Editors: 2246

Tom Hastings 2247 809 N Dianthus St 2248 Manhattan Beach CA 90266 2249 2250 2251 Phone: 310-372-6734 2252 e-mail: [email protected] 2253 2254 Don Fullman 2255 27736 Cummins Dr 2256 Laguna Niguel, CA 92677 2257 2258 Phone: (949) 831-1031 2259 e-mail: [email protected] 2260 2261

Send comments to the PWG IPP Mailing List: 2262

[email protected] (subscribers only) 2263

To subscribe, see the PWG web page: 2264

2265

Implementers of this specification document are encouraged to join IPP Mailing List in order to participate in any 2266 discussions of clarification issues and review of registration proposals for additional attributes and values. 2267

2268 Other Participants: 2269

Lee Farrell Bob Herriot - Global Workflow Solutions Ira McDonald - High North Inc. Michael Sweet - Apple Jerry Thrasher - Lexmark William Wagner - TIC Peter Zehler - Xerox

2270

18 Appendix X - Change Log 2271

[[[PWG Secretary: Delete this section before publication as a Candidate Standard]]] 2272

Page 80: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

18.1 7 November 2010 (v37, v36, v35) 2273

Editorial comments received during PWG Formal Vote and during IPP WG review. Mainly to make the 2274 conformance requirements be more clearly and consistently labeled either OPTIONAL or REQUIRED to agree 2275 with Section 1, 5, and 7. 2276

18.2 27 September 2010 - For PWG Formal Vote 2277

Clean verson for PWG Formal Vote. 2278

18.3 25 September 2010 (v33) - PWG Last Call Comments 2279

From the minutes of the 2010-09-13 minutes: 2280

e. Agreed to also add forward references for job save conformance requirements like Tom did for 2281 proof print. 2282

f. Line 1364: "pdl-init-file-name" instead of "save-name" 2283

g. Section 8.2.1: Clarified to apply all conditions to both job-delay-output-until and job-delay-output-2284 until-time. 2285

h. Section 8.2.2: Similar clarifications for job-hold-until and job-hold-until-time. 2286

i. Section 12.5: Additional corrections to remove references to job save format. 2287

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

From the minues of the 2010-08-05 f2f minutes: 2290

d. Add subsections to 8.2 for attributes 2291

Make like 8.1. 2292

e. Should make job-creation-attributes-supported REQUIRED for IPP/2.2 and and IPP 2293

Everywhere and RECOMMENDED for IPP/2.0 and IPP/2.1 2294

No change to JPS2, leave as OPTIONAL. 2295

f. Should we add filters for media-col-database? 2296

Add a new operation attribute as input to Get-Printer-Attributes, but wait for some other spec, not 2297 JPS2. 2298

g. Table 15 has a different format than other tables in spec? 2299

Make all keywords lists be table, but without heading and no conformance column. 2300

h. Section 12.1, item 7 doesn't have "if Purge-Jobs supported (section 6.4)" 2301

i. Section 12.5: first sentence refers to job-save-disposition instead of proof-print 2302

(which should be the REQUIRED proof-print attribute) 2303

j. Include forward references to section 12.5 for all proof-print stuff. 2304

k. Update affiliations in section 17 for other participants (no affiliation for Lee) 2305

Page 81: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

2306

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

From the minutes of the 2010-07-19 telecon: 2309

a. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippjobprinterext10-v30-20100718.pdf 2310 b. Agreed to not change font-size-requested - too much work otherwise for an edge 2311 case, and we could always add CPI and LPI attributes to provide the right fix. 2312 c. Agreed to change the lead-in text for section 3 to "In order to satisfy...". 2313 d. Agreed to remove references to "light production printing" 2314 e. Agreed to the access rights text for Close-Job 2315 f. Agreed to the change for job-password-supported to 255 octets. 2316 g. Agreed to keep job-spooling-supported a single value attribute to avoid causing 2317 changes to the XML encoding, and use 1setOf for Get-Printer-Supported-Values. All 2318 other changes are accepted. 2319 h. Agreed to not add a job-spooling-configured attribute. 2320 i. Agreed that job-spooling-supported can depend on document-format 2321 j. Agreed to remove the references to implementation-defined behavior in the 2322 description of job-spooling-supported. 2323

k. Agreed to drop "job size" example from the automatic value for job-spooling-supported. 2324

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

1. Section 3.1 Rationale: Per See Apple's IPP WG Last Call Comment #4: Removed reference to "light 2327 production printing" environments, since we have agreed to remove mention of Production Printing in 2328 JPS2, except to define it, since JPS2 is not limited to Production Printing or Light Production Printing. 2329

2. Section 5.3 Close-Job Operation: See Apple's IPP WG Last Call Comment #5: Added: Access Rights: 2330 The authenticated user (see [RFC2911] section 8.3) performing this operation must either be the job 2331 owner (as determined in the Create-Job operation) or an operator or administrator of the Printer object 2332 (see [RFC2911] Sections 1 and 8.5). Otherwise, the IPP object MUST reject the operation and return: 2333 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate. 2334

3. Section 10.3 job-password-supported (integer(0:255)): Per Apple's IPP WG Last Call Comment #6: 2335 Changed "127" to "255" to agree with the max number of octets allowed for the attribute. 2336

4. Section 10.5 job-spooling-supported (type2 keyword): Per Apple's IPP WG Last Call Comment #7: 2337

a. Added "1setOf" to "job-spooling-requested", so it is multi-valued. 2338

b. Indicated that the values returned MAY depend on the "document-format" of the documents 2339 supplied in the job and, hence, requested and returned in the Get-Printer-Attributes request and 2340 response, respectively. 2341

c. Removed the nonsense sentence that the values supported depend on implementation. 2342

d. Removed the sentence about Get-Printer-Supported-Values, since "job-spooling-supported" is now 2343 multi-valued in both Get-Printer-Attributes and Get-Printer-Supported-Values operations. 2344

Page 82: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

e. Indicated that 'automatic' value MAY depend on document format. 2345

5. Section 13.1 Attribute Registration: Per Apple's IPP WG Last Call Comment #7: Changed "job-2346 spooling-supported" to be "1setOf". 2347

18.7 6 June 2010 (v28) - Stable version 2348

1. Agreed to the added abstract text. 2349 2. Agreed that Cancel-Jobs must return successful-ok-ignored-or-substituted-attributes for job-ids 2350

that can't be canceled. 2351 3. Agreed to changes for job-delay-output-until value of "indefinite" 2352 4. Agreed that Resume-Job cannot be used with processing-stopped jobs. 2353 5. Agreed that job-delay-output-until and job-delay-output-until-time cannot be specified at the same 2354

time. 2355 6. Agreed that job-delay-xxxx and job-hold-xxxx *can* be specified at the same time. 2356 7. Agreed that job-hold-until and job-hold-until-time cannot be specified at the same time. 2357 8. Agreed to the creation of a new section 8 section on semantics. 2358 9. Agreed to move conformance text for job-hold-until-time to 12.x 2359 10. Issue: if job-hold-until-time is supported, Hold-Job, Release-Job, and job-hold-until must be 2360

supported 2361 11. Agreed to a rewritten version of the 8.1.1 text 2362 12. Issue: Need new 8.x sections for Release-Job and Restart-Job to address job-hold-until-time 2363 13. Agreed to the use of the job-hold-until-specified value when job-hold-until-time is specified 2364 14. Agreed to add job-hold-until=indefinite when an invalid job-hold-until-time is specified 2365 15. Issue: require support for Set-Job-Attributes when job-delay-output-xxxx are supported 2366 16. Agreed to the new Set-Job-Attributes semantics with a corrected reference (RFC 3380 section 2367

4.2). 2368 17. Agreed to the deletion of the first two paragraphs of 12.3. 2369

18. Agreed to update document status from prototype to stable. 2370

18.8 16 May 2010 (v27) 2371

1. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)) and 7.5 job-delay-output-until-time 2372 (dateTime): Only Set-Job-Attributes can get a job out of a indefinitely delay-output condition; Resume-2373 Job and Release-Job cannot be used for this. 2374

2. Section 7.6 job-hold-until-time (dateTime): Tightened up the error response to the bad request with 2375 both "job-hold-until" and "job-hold-until-time" specified in a job creation operation, so that the Printer 2376 MUST reject the operation and return 'client-error-conflicting-attributes' status code. 2377

3. Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs: Made arrows more 2378 horizontal. 2379

4. Added Section 8 Additional semantics for existing operations with subsections: 8.1 Additional attribute 2380 for use with the Hold-Job operation and 8.2 Additional attributes for use with the Set-Job-Attributes 2381 operation. 2382

18.9 19 April 2010 (v26) 2383

1. Section 8.1 Additional attribute for use with the Hold-Job operation: Agreed to NOT add any of the 3 2384 new operation attributes 'job-hold-until-time', 'job-delay-output-until' and 'job-delay-output-until-time' to 2385

Page 83: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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-2386 Job-Attributes operation (as well as the Job Creation operations). Then it is clear what the effect will 2387 be on a job, since the attributes are explicitly supplied in the operation. 2388

2. Section 8.2 Additional attributes for use with the Set-Job-Attributes operation : Agreed that the 'job-2389 hold-until' and 'job-hold-until-time' are mutually exclusive, and that setting one with Set-Job-Attributes, 2390 cancels the effect of the other. Same for 'job-delay-output-until' and job-delay-output-until-time. 2391 However, that either of the attributes of the first pair can be supplied along with either of the second 2392 pair and they independently control the holding the processing and the delaying output of the job. Add 2393 section to explain this. 2394

18.10 18 April 2010 (v25) 2395

3. Table 3 - Legal job state transitions for Cancel-Jobs and Cancel-My-Jobs operations, Section 5.1.2 2396 Cancel-Jobs Response, and Section 5.2.2 Cancel-My-Jobs Response: Removed Rule 2 so that there 2397 are no errors conditions, only 'successful-ok' and 'successful-ok-ignored-or-substituted-attributes' 2398

4. Section Error! Reference source not found. Error! Reference source not found.: Added new 2399 section. 2400

5. Section Error! Reference source not found. Error! Reference source not found.: Added new 2401 section. 2402

6. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Removed the 'job-delay-output-until-2403 suspended' value for "job-state-reasons". 2404

7. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Added that the Printer MAY add 'job-2405 queued' "job-state-reasons" value when the time period does arrive 2406

8. Section 7.5 job-delay-output-until-time (dateTime) Removed the 'job-delay-output-until-suspended' 2407 value for "job-state-reasons". 2408

9. Section 7.5 job-delay-output-until-time (dateTime) Added that the Printer MAY add 'job-queued' "job-2409 state-reasons" value when the time period does arrive 2410

10. Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs: Fixed arrows, 2411 added job numbers for Complete state, and added OPTIONAL "job-state-reasons" values: 'job-2412 queued-for-marker' and 'job-queued'. 2413

18.11 6 April 2010 (v24) 2414

1. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)), Section 7.5 job-delay-output-until-2415 time (dateTime), and Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal 2416 Jobs: Added new 'job-delay-output-until-suspended' value for "job-state-reasons" attribute when the 2417 job is suspended in the 'processing-stopped' state waiting for the delay period or date-time to arrive. 2418

2. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)), Section 7.5 job-delay-output-until-2419 time (dateTime): Changed from using 'job-hold-until-specified' value for "job-state-reasons" attribute 2420 for implementations that cannot partially process the job before the delay output period or date-time 2421 arrives to always use the 'job-delay-output-until-specified' value. 2422

3. Section 11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute" Added definition for 2423 "job-delay-output-until-specified" value. 2424

Page 84: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 2425 "job-delay-output-until-suspended" value. 2426

18.12 30 March 2010 (v23) 2427

1. Section 5.3 Close-Job Operation: Added sub-sections for Close-Job Request and Response. 2428

2. Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs: Improved figure 2429 and added sub-states of Waiting for Marker to the 'processing' state and Waiting for Processor to the 2430 'processing-stopped' state. 2431

18.13 29 March 2010 (v22) - during telecon 2432

1. Fixed some things in Figure 1, Figure 2, and Figure 3. 2433

2. Figure 4 - Time Sequence Diagram for 1 Hold, 2 Delay Output, and 4 normal Jobs: Added this Figure. 2434

3. Section 13 IANA Considerations: Assigned the part number 11 for this PWG 5100.11 document. 2435

4. Section 13.3 Type2 enum attribute value registrations: Assigned enum hex values to Cancel-Jobs 2436 (0x0038), Cancel-My-Jobs (0x0039), Resubmit-Job (0x003A), and Close-Job (0x003B) - to agree with 2437 IPP 2.0 document. 2438

18.14 28 March 2010 (v21) 2439

1. Figure 1 - Job Creation Operation Flow Diagram with "job-delay-output-until": Added this Figure. 2440

2. Figure 2 - Job Creation Operation Flow Diagram with "job-delay-output-until-time" specified: Added 2441 this Figure. 2442

3. Figure 3 - Job Creation Operation Flow Diagram with "job-hold-until-time": Redrew this Figure with 2443 MS-WORD Drawing. Fixed two bugs: 2444

a. horizontal branch should be <= and vertical branch >, i.e., do NOT hold the job if the specified 2445 time has exactly arrived. 2446

b. The "job-hold-until-specified' should NOT be set in "job-state-reasons" if the time has arrived when 2447 other hold reasons apply, so only set "job-state-reasons" if the time has NOT yet arrived by adding 2448 extra box. 2449

18.15 15 March 2010 (v20) 2450

1. Table 4 - State Transition Table for the Resubmit-Job operation: Allowed the Printer to try a copy of 2451 the 'aborted' job, in case the reason for aborting the job was a temporary condition, such as disk full, 2452 which is no longer the case. 2453

2. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Clarified that the Printer MUST NOT 2454 delay processing or output of any other jobs while a delayed job that has processed waits for the 2455 specified time period. 2456

Page 85: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 2457 into the 'processing' state while producing the output (from either the 'pending' state or the 'processing-2458 stopped' state). 2459

4. Table 5 - Comparison of "job-delay-output-until" with "job-hold-until": Moved the Description column to 2460 be first in the table, fixed some typos, and removed 'completed' state. 2461

5. Section 7.5 job-delay-output-until-time (dateTime): Made parallel changes to this section. 2462

6. Section 7.5 job-delay-output-until-time (dateTime): Added a forward reference to Section 12.3 2463 Conformance Requirements for clients dealing with supplying both "job-delay-output-until" and "job-2464 delay-output-until-time" attributes. 2465

7. Section 12.3 Conformance Requirements for clients: Removed mention of "job-hold-until" in 2466 combination with "job-hold-until-time" since we thought (incorrectly) it was covered in some other spec. 2467

8. Section 12.3 Conformance Requirements for clients: Added that the status code that the Printer 2468 returns when the client supplies both "job-delay-output-until" and "job-delay-output-until-time" attributes 2469 is 'client-error-conflicting-attributes'. 2470

18.16 1 March 2010 (v19) 2471

Edits made according to the agreements reached at the IPP WG telecon, 1 March 2010: 2472

1. Abstract: Added reason for Close-Job, i.e., streaming. 2473

2. Section 5.3 Close-Job Operation: Clarified that Close-Job MUST NOT add a document object. 2474

3. Section 5.3 Close-Job Operation: Removed the sentence that the client SHOULD use Send-Document 2475 with "last-document" = 'true' and no document data, if the Printer doesn't support Close-Job operation 2476

2477

18.17 28 February 2010 (v18) 2478

Edits made according to agreement reached at the IPP WG face to face meeting, February 10, 2010. 2479

1. Section 5.3 Close-Job Operation: Added REQUIRED Close-Job operation. 2480

2. Section 7.4 job-delay-output-until (type3 keyword | name(MAX)): Added the OPTIONAL "job-delay-output-2481 until" (type3 keyword | name(MAX)), "job-delay-output-until-default" (type3 keyword | name(MAX)), and 2482 "job-delay-output-until-supported" (1setOf type3 keyword | name(MAX)) Job Template attributes. 2483

3. Section 7.5 job-delay-output-until-time (dateTime): Added the OPTIONAL "job-delay-output-until-time" 2484 (dateTime) and "job-delay-output-until-time" (rangeOfInteger(0:MAX)) Job Template attributes. 2485

18.18 10 January 2010 (v16) 2486

Additional edits made during and after the IPP WG telecon, 10 January 2010: 2487

1. Section 1 Introduction: Added Table 2: Operations defined or referenced, so as to include the REQUIRED 2488 Reprocess-Job operation defined in [RFC3998]. 2489

Page 86: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 2490 of these functions MAY be supplied in a document format (PDL)" to "Many of semantics of these Job 2491 Template and Operation attributes MAY also be supplied in corresponding document format (PDL) 2492 directives". 2493

18.19 10 December 2009 (v15) 2494

Additional edits made as agreed at the IPP WG face to face, 9 December 2009: 2495

1. Removed mention of Production Printing in the Abstract. 2496

2. Added OPTIONAL and REQUIRED to the Abstract to reflect what is REQUIRED and what is OPTIONAL. 2497

18.20 2 December 2009 (v0.14) 2498

Additional edits made as agreed in the IPP WG telecon, 30 November 2009 and reflected in the minutes. 2499

1. Section 10.9 which-jobs-supported (1setOf type2 keyword): Removed OPTIONAL and added 2500 conditional MUST support if "proof-print" or "job-save-disposition" is supported. 2501

2. Section 11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf 2502 type2 keyword) Printer Description attribute: Removed OPTIONAL and added that some are 2503 OPTIONAL to support, unless indicated otherwise in their descriptions. 2504

3. Section 12.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute: Added 2505 MUST support "which-jobs-supported" Printer Description attribute. 2506

4. Added Section 12.5 Conformance Requirements for the REQUIRED "proof-print" Job Template 2507 attribute to parallel Section 12.4 Conformance Requirements for the OPTIONAL "job-save-disposition" 2508 Job Template attribute. 2509

Here are the Minutes of the 30 November 2009: 2510

b. Agreed that "feature" is a good replacement term for "capability". 2511

c. Agreed to the new definitions for the Job Proof Print and Job Save and Reprint features. 2512

d. Agreed to the new section 3 text with minor corrections and removal of new attribute and operation 2513 names from the use cases. 2514

e. Agreed to the updated job-ids text that states job-ids cannot be specified in a Get-Jobs request with 2515 limit, my-jobs, or which-jobs. 2516

f. Agreed to the conformance text for the new job-state-reasons keywords. 2517

g. Added conformance text to which-jobs values. 2518

h. Agreed to the section 11 conformance requirements with the removal of "job-save-disposition" and 2519 the addition of the which-jobs reference. 2520

i. Agreed to the updated participant list. 2521

Page 87: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

18.21 30 November 2009 (v0.13) 2522

Edits made to carry out the agreement reached at the IPP WG telecon, 30 November 2009: 2523

1. Made sure that "job-save-disposition" Job Template attribute and the Job Save and Reprint Feature 2524 are OPTIONAL, while the "proof-print" Job Template attribute and the Job Proof Print Feature are 2525 REQUIRED. 2526

2. Section 3.1 Introduction: Added in parens (Job Owner and Operator) to item (f). 2527

3. Section 11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf 2528 type2 keyword) Printer Description attribute: Added conditional requirement that the 'proof-print' 2529 keyword value MUST be supported if the "proof-print" Job Template attribute is supported. 2530

4. Section 11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf 2531 type2 keyword) Printer Description attribute: Added conditional requirement that the 'saved' keyword 2532 value MUST be supported if the "job-save-disposition" Job Template attribute is supported. 2533

18.22 22 November 2009 (v0.12) 2534

Edits made to carry out the agreements reached at the IPP WG telecon, 2 November 2009: 2535

1. Changed "Capability" to "Feature" and replaced a number of such usages with "job-save-disposition" 2536 Job Template attribute and "proof-print" Job Template attribute. 2537

2. Changed "Job and Printer Extensions - Set 2 extension/document" to "Job and Printer Extensions - 2538 Set 2 Specification". 2539

3. Section 2.2 Other terminology: Added the term Job Proof Print Feature 2540

4. Section 2.2 Other terminology: Enhanced the term Job Save and Reprint Feature 2541

5. Section 3 Requirements: Added this whole new section written by Ira according to the IPP Policy 2542 V2.0, January 2009. 2543

6. Section 6.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation: If client supplies "job-ids" 2544 operation attribute it MUST NOT supply "limit", "my-jobs", and "which-jobs" and the Printer MUST 2545 detect such a client error and return 'client-error-conflicting-attributes'. 2546

7. Section 11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute: Added conditional 2547 conformance for each "job-state-reasons" value. 2548

8. Section 12.1 Conformance Requirements for this specification: Added "Reprocess-Job operation 2549 [RFC3998] to the list of REQUIRED operations for conformance to Set 2 Specification. 2550

18.23 2 November 2009 (v0.11) 2551

Edits made to the text and comments added during the IPP WG Telecon, 2-November-2009. Here are the 2552 minutes: 2553

e. th2: Agreed to Mike's update of the new summary paragraph in the Abstract. 2554

Page 88: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 2555 and Printer Extensions Set 2 extension". 2556

g. th6: Agreed to change "possibly" to "optional" and "Resubmit-Jobs" to "Resubmit-Job" 2557 h. th11: Agreed to the text 2558 i. th12: Agreed to copy table 2559 j. th15: Agreed to the text 2560 k. th17: Agreed that it is OK to omit job-ids 2561 l. th7-th27: Agreed that the Cancel-Jobs and Cancel-My-Jobs descriptions are OK 2562 m. th30: Agreed that you can't resubmit an aborted job 2563 n. Agreed that we'll include an errata for RFC 3998's Reprocess-Job to disallow reprocessing of aborted 2564

jobs 2565 o. th36, th37R36: Agreed that "job-ids" is mutually-exclusive with "limit", "my-jobs", and "which-jobs", 2566

returning client-error-conflicting-attributes 2567 p. th42: Agreed to conformance wording 2568 q. th44, th45: Agreed that job-saved-with-warnings is an unsuccessful state 2569 r. th48, th52: Agreed to leave "save-name-subdirectory-supported" and "pdl-init-filename-subdirectory-2570

supported" in the job template section even though they are printer description attributes. 2571 s. th58, th59: Agreed to the existing text. 2572 t. th60, th61R60: Agreed to add proof-print keyword 2573 u. th62: Agreed to require the saved keyword if a printer supports saved jobs 2574 v. th64: Agreed to add conformance requirements to new job-state-reasons 2575 w. Agreed that the job-printed-*, job-saving, and job-saved-* keywords are required if saving is 2576

supported 2577 x. Agreed to drop the job-scheduling keyword from job-state-reasons since we don't have a good 2578

definition/justification/history for it 2579 y. Agreed to make job-spooling and job-streaming keywords dependent on job-spooling-supported 2580

values 2581 z. Agreed to make job-resuming, job-suspended-*, and job-suspending keywords dependent on the 2582

RFC 3998 Suspend-Current-Job and Resume-Job operations 2583 aa. th67: Ira volunteered to write draft of rationale and use cases 2584 bb. th68-th70: Rename Resubmit-My-Jobs to Resubmit-Job, drop requirement 6, add job-state-reasons 2585

and which-jobs references 2586 cc. th71: Agreed to spec and feature/operation conformance levels 2587 dd. th72: Agreed to the text 2588 ee. th73, th74: Agreed to review and update as needed 2589 ff. th75: Agreed to change "Author's Addresses" to "Editor's Addresses", drop editors from the document 2590

references, and update the list of participants and companies. 2591

18.24 25 October 2009 (v0.10) 2592

Edits made to carry out the agreements reach as the IPP WG telecon, 14 October 2009: 2593

1. Abstract: Add Cancel-My-Jobs and enhanced the descriptions of the operations. 2594

2. Section 2.2 Other terminology: Proof Print Job definition clarified to have a different aging policy than 2595 ordinary completed jobs. 2596

3. Section 5.1.1 Cancel-Jobs Request: Removed "my-jobs" operation attribute. 2597

4. Section 5.1.1 Cancel-Jobs Request: Clarified that the absence of "job-ids" means cancel all 2598 cancelable jobs. 2599

Page 89: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 2600 canceled if the client supplied them. 2601

6. Section 5.2 Cancel-My-Jobs operation: Added entire new section defining Cancel-My-Jobs, which also 2602 has the "job-ids" (1setOf integer(1:MAX)) operation attribute that specifies a list of the user's jobs to 2603 cancel. If omitted, all of the user's cancelable jobs are canceled. 2604

7. Section 5.2 Cancel-My-Jobs operation: If "job-ids" is omitted, all of the user's cancelable jobs are 2605 canceled. 2606

8. Section 5.2 Cancel-My-Jobs operation: Clarified that the precedence is jobs not belonging to the user 2607 are checked and returned if any don't belong to the user. Only if they all belong to the user, are their 2608 statuses checked and if any are not in a state that that can be canceled, they are returned in "job-ids" 2609 and no jobs are canceled. 2610

9. Section 6.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation: Added that the client MUST 2611 be able to supply "job-ids" and the Printer MUST support "job-ids" in order to claim support of this Job 2612 and Printer Extensions - Set 2 Specification. 2613

10. Section 6.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation: Added that the client MUST 2614 be able to supply "job-ids" and the Printer MUST support "job-ids" in order to claim support of this Job 2615 and Printer Extensions - Set 2 Specification. 2616

11. Section 7.11 proof-print (collection): Added that the aging period SHOULD be longer than that for 2617 ordinary jobs. 2618

12. Section 10.2 job-ids-supported (boolean): Added that a Printer MUST support "job-ids-supported" 2619 Printer Description attribute if it supports the "job-ids" Operation attribute for Get-Jobs, or Purge-Jobs, 2620 but removed any mention of Cancel-Jobs or Cancel-My-Jobs, where "job-ids" MUST be supported. 2621

13. Section 11.2 which-jobs (type2 keyword) Operation attribute and the which-jobs-supported (1setOf 2622 type2 keyword) Printer Description attribute: Added 'proof-print' keyword so that the client can specify 2623 Proof Print Jobs in Get-Jobs, since we added 'saved' already. 2624

14. Section 12.1 Conformance Requirements for this specification: Added this summary of the now 2625 REQUIRED attributes and operations in order to conform to this document. 2626

15. Section 13 IANA Considerations: Added a number of attributes and keyword attribute values and one 2627 operation (Cancel-My-Jobs) that are in the spec, but were not yet in the IANA registrations section. 2628

18.25 14 October 2009 (v0.9) 2629

Edits made to the text and comments added during the IPP WG Telecon, 14-October-2009. Here are the minutes: 2630

a. Agreed to rename "IPP Production Printing Set 2" to "IPP Job and Printer Extensions Set 2" and 2631 reference existing IETF and PWG Job and Printer specs. 2632 b. Agreed to separate Cancel-Jobs into two operations - Cancel-My-Jobs (user operation) and Cancel-2633 Jobs (admin operation) 2634 c. For Cancel-My-Jobs, if any job is not owned by the user, client-error-not-authorized is returned 2635 d. For Cancel-Jobs and Cancel-My-Jobs, if any job is not cancelable, client-error-not-possible is 2636 returned. 2637

⁃ client-error-not-authorized has precedence over client-error-not-possible 2638

Page 90: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

18.26 8 October 2009 (v0.8) 2639

1. Abstract: added the two new operations: Cancel-Jobs and Resubmit-Job. 2640

2. Section 4.3 Job Save and Reprint : Added that a Printer that supports Job Save and Reprint, MUST 2641 support Proof Print. 2642

3. Section 4.4 Job Proof Print : If a Printer supports Proof Print, it NEED NOT support Job Save and 2643 Reprint Capability. 2644

4. Section 5 New REQUIRED Operations: Added this new section with complete Cancel-Job and 2645 Resubmit-Job operations. 2646

5. Section 6.3 job-ids (1setOf integer(1:MAX)) for the Get-Jobs operation: In the Get-Jobs operation, if 2647 the client supplies the “my-jobs” attribute with the ‘true’ value and also supplies, the “job-ids” operation 2648 attribute, the Printer MUST reject the request and return the ‘client-error-conflicting-attributes’ status 2649 code. 2650

6. Section 7.9 job-save-disposition (collection): Added: If Printer support "job-save-disposition", then it 2651 MUST also support "proof-print", but not the converse. 2652

7. Section 7.9.1.2.3.1 save-location (uri): Changed conformance for 'file:' in "save-location" from 2653 SHOULD to MAY. 2654

8. Section 7.9.1.2.3.2 save-name (name(MAX)): Added reference to the new "save-name-subdirectory-2655 supported" Printer attribute that indicates whether the Printer supports FORWARD-SLASH in the 2656 "save-name". 2657

9. Section 7.10.1.2.2 pdl-init-file-name-subdirectory-supported (boolean): Added new "pdl-init-file-name-2658 subdirectory-supported" Printer Description attribute to indicate whether or not FORWARD-SLASH 2659 was supported in the "pdl-init-file-name" member attribute. 2660

10. Section 7.11 proof-print (collection): Added that Proof Print Jobs can be aged out, but MAY be longer 2661 than ordinary jobs. 2662

11. Section 11.3 job-state-reasons (1setOf type2 keyword) Job Description attribute: Removed 'job-proof-2663 wait'. 2664

18.27 5 October 2009 (v0.7) 2665

Edits made to the text and comments added during the IPP WG Telecon, 5-October-2009. Here are the minutes: 2666

Discussion of Cancel-Job/Purge-Jobs extensions: 2667

a. Agreed that a new operation called Cancel-Jobs is preferred to overloading Purge-Jobs or Cancel-Job 2668

⁃ Required printer-uri 2669

⁃ Optional job-ids (1setOf integer) or my-jobs (boolean) operation attributes 2670

b. Agreed to add the job-ids (1setOf integer) operation attribute to Purge-Jobs for purging selected jobs 2671

c. Agreed to add the job-ids (1setOf integer) operation attribute to Get-Jobs for getting selected jobs 2672

Page 91: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

d. New jobs-ids-supported (boolean) printer description attribute 2673

Review IPP Production Printing Set2 (Tom): 2674

a. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v6-20091004.pdf 2675

b. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v6-20091004-rev.pdf 2676

c. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v6-20091004.doc 2677

d. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v6-20091004-rev.doc 2678

e. Agreed that new Cancel-Jobs operation will replace all use of Purge-Jobs by ordinary users 2679

f. Agreed that users can save proofed jobs 2680

g. Agreed to eliminate Purge-Jobs tables 2681

h. Agreed that saved jobs in the aborted state cannot be reprocessed or resubmitted 2682

i. Agreed that http scheme support is a SHOULD and file scheme support is a MAY 2683

j. Agreed to remove discussion of concatenating save-name and save-location 2684

k. Agreed to update discussion of sub-directories and slashes in save-name - implementation defined, 2685 may depend on the save-location, printer will return client-error-attributes-or-values-not-supported 2686

l. Agreed to remove hard-proof discussion; if save job is supported, proof job must also be supported 2687

m. Agreed that you can't supply document-format to Resubmit-Job 2688

n. Agreed to update pdl-init-file-name like save-name 2689

o. Agreed to the updated proof-print (collection) description 2690

p. Agreed that proof-print jobs can be "aged out" like ordinary jobs (although they may live longer than 2691 ordinary jobs) 2692

q. Agreed that proof-print jobs end up in the completed state, not pending-held 2693

r. Agreed that the operation can resubmit proof-print jobs with a higher priority to get the job printed first 2694 - no need for extended discussion 2695

s. Agreed to the removal of copies of existing standard text 2696

t. Agreed to the removal of the proof-print-wait state reason 2697

u. Agreed to add job-printed-successfully, job-printed-with-errors, job-printed-with-warnings, job-saved-2698 with-errors (replaces job-save-error), job-saved-with-warnings job-state-reason keywords 2699

v. Agreed to remove the new definitions of job-completed-successfully, job-completed-with-warnings, and 2700 job-completed-with-errors 2701

Page 92: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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-2702 xx. 2703

x. Agreed to updated list of media-type member attribute values 2704

y. Agreed that both Reprocess-Job and Resubmit-Job are REQUIRED 2705

18.28 4 October 2009 (v0.6) 2706

Drafted text to follow the agreements made at the 2009-09-14 IPP WG meeting (see v0.5 log) below: 2707

1. Section 2.2 Other terminology: Removed the terms: “Actual File Name” and “Virtual File Name”, since the 2708 “job-save-disposition” / “save-info” / “save-location” and “job-save-disposition” / “save-info” / “save-name” 2709 are no-longer concatenated to form a URL that is used in Print-URI to reference the Saved Job. 2710

2. Section 2.2 Other terminology: Clarified the terms: “Proof Print Job”, “Retained Job”, and “Saved Job” with 2711 respect to the Delete-Job and Purge-Jobs operations and the Reprocess-Job and Resubmit-Jobs 2712 operations. 2713

3. Section 4.3.1 Reprinting Saved Jobs: Clarified how reprinting works with Reprocess-Job and Resubmit-Job 2714 operations. 2715

4. Section 4.4 Job Proof Print : Added this parallel section to describe re-printing a Proof Job which is now 2716 quite parallel to re-printing a Saved Job. 2717

5. Section 5.1 Cancel-Jobs operation: Added this section that adds the “purge-jobs” (boolean) operation 2718 attribute to the Cancel-Job operation. 2719

6. Section 6.4 job-ids (1setOf integer(1:MAX)) for the Purge-Jobs operation: Added this section that adds the 2720 “my-jobs” (boolean) and “purge-jobs” (boolean) operation attributes to the Purge-Jobs operation. 2721

7. Section 7.7 job-phone-number (uri): Clarified the Printer requirements. 2722

8. Section 7.8 job-recipient-name (name(MAX)): Rearranged the text. 2723

9. Section 7.9 job-save-disposition (collection): Changed SHOULD to MUST that the Printer MUST be able 2724 to process a document format for reprint for any format that it is able to save the job. 2725

10. Section 7.9.1.1 save-disposition (type3 keyword): Changed ‘save-only’ from applying to Print-URI to 2726 applying to Reprocess-Job and Resubmit-Job operations. 2727

11. Section 7.9.1.2.3.1 save-location (uri) Table 9: Added ‘http’ URI Scheme for saving jobs. 2728

12. Section 7.9.1.2.3.2 save-name (name(MAX)): Removed the discussion about Virtual File Name, since the 2729 “job-id” or “job-uri” is used to reference Saved Jobs, not a URL. 2730

13. Section 7.9.1.2.3.3 save-document-format (mimeMediaType): Clarified that any convenient, fast, and/or 2731 compact re-printing format NEED NOT be identified by a distinct mimeMediaType value. 2732

14. Section 7.9.1.2.3.3 save-document-format (mimeMediaType): Clarified the discussion of a manual “hard-2733 proof” using “job-save-disposition”, followed by Reprocess-Job or Resubmit-Job. 2734

Page 93: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 2735 Printer MUST support any “document-format” value supplied in the Resubmit-Job operation that is 2736 contained in the “save-document-format-supported” Printer attribute. 2737

16. Section 7.10.1.2 pdl-init-file-name (name(MAX)): Removed the reference to Virtual File name and use the 2738 term “file path”. 2739

17. Section 7.11 proof-print (collection): Added that the client SHOULD provide a convenient means for the 2740 user to remove a Proof Print Job after requesting a copy to be printed, now that the Printer doesn’t 2741 automatically remove a Proof Print Job when a copy is re-printed using Reprocess-Job or Resubmit-Job 2742 operation. 2743

18. Section 7.11.1.1 proof-print-copies (integer (0:MAX)): Clarified that the Proof Print Job is transitioned to 2744 ‘completed’ after the proofs are printed successfully, rather than to the ‘pending-held’ state. 2745

19. Section 11 Additional Values and Semantics for Existing IPP Attributes: Removed all text that existed in 2746 other IPP standards, so that only the new text remains. 2747

20. Section 11.4 Additional keyword values for the “media-type” member attribute: Removed the ‘proof-print-2748 wait’ value, since a Proof Print Job now goes to completion after printing the proofs, rather than the 2749 ‘pending-held’. 2750

21. Section 11.4 Additional keyword values for the “media-type” member attribute: Added values from 2751 [JDF1.4] Media/@MediaType and Media/@MediaTypeDetails attributes that are not already in 2752 [PWG5100.3]. 2753

22. Section 12.4.1 Client Conformance Requirements for the : Added that the Printer MUST support 2754 Reprocess-Job and (new) Resubmit-Job if it support the Job Save and Reprint Capability (instead of Print-2755 URI operation). 2756

23. Section 12.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute: Added ‘http; to 2757 the SHOULD list for the Printer to support. 2758

24. Section 12.4.2 Printer Conformance Requirements for the 'job-save-disposition" attribute: Removed that 2759 the Printer MUST support the Printer-URI operation. 2760

25. Section 13 IANA Considerations: Updated to agree with the above changes. 2761

18.29 14 September 2009 (v0.5) 2762

Edits made to the text and comments added during the IPP WG Telecon, 14-September-2009. Here are the 2763 minutes: 2764

a. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v4-20090906.pdf 2765

b. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v4-20090906-rev.pdf 2766

c. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v4-20090906.doc 2767

d. ftp://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippprodprintext10-v4-20090906-rev.doc 2768

e. Agreed that job-save-printer-make-and-model is the correct name for the table. 2769

Page 94: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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. 2770

g. Agreed to add a way to purge jobs with Cancel-Job operator and to clarify that Purge-Jobs can be 2771 performed by a non-operator to purge only that user's jobs - Mike to provide current CUPS extensions 2772

h. Accepted the description for 3.3 Job Save and Reprint Capability. 2773

i. Updated and accepted the description for 3.3.1.1 Reprinting using the Reprocess-Job operation 2774

j. Updated and accepted the description for 3.3.1.2 Reprinting using the Resubmit-Job operation 2775

k. Updated and accepted the descriptions for 5.5 job-phone-number (uri), 5.5.1 job-phone-number-default, 2776 and 5.5.2 job-phone-number-supported 2777

l. Updated and accepted that a printer MUST be able to process any document format that is available as a 2778 saved document format (5.7 job-save-disposition (collection)) 2779

m. Updated and accepted the new description text for 5.7.1.1 save-disposition (type3 keyword) 2780

n. Updated and conditionally accepted the description for 5.7.1.2.3.2 save-name (name(MAX)) (pending 2781 "handle" term changes) 2782

o. Agreed that the term "handle" needs to be changed when referring to the save-location and save-name 2783 attributes (virtual file names) 2784

p. Updated and agreed to the new description for 5.7.1.2.3.3 save-document-format (mimeMediaType) 2785

q. Agreed that for 5.9 proof-print (collection), the printer does not age out the job once it is reprinted. 2786

r. Agreed that we will not list keyword values from other specifications unless new meaning is added. 2787

s. Agreed to the additions to 8.5.1 media-tooth (type3 keyword | name(MAX)) 2788

t. Need to verify the operation code for Resubmit-Job 2789

18.30 10 September 2009 (v0.4) 2790

Drafted text to follow the agreements made at the 2009-09-01 IPP WG meeting (see v0.3 log) below: 2791

1. Section 1 Introduction: Changed “job-printer-make-and-model” to “job-save-printer-make-and model” to 2792 agree with section 9.1 2793

2. Section 2.2 Other terminology: added definitions for Proof Print Job, Retained Job, and Saved Job. 2794

3. Section 4.3 Job Save and Reprint : A Saved Job is a special case of a Retained job. 2795

4. Section 4.3.1.1 Reprinting using the Reprocess-Job operation: Added additional semantics of the existing 2796 [RFC3998] Reprocess-Job operation when reprinting a Saved Job. Removed the Print-URI operation from 2797 this document, since it won’t be used for reprinting Saved Jobs. 2798

5. Section 4.3.1.2 Reprinting using the Resubmit-Job operation: Added the semantics for the new Resubmit-2799 Job operation. 2800

6. Section 7.7 job-phone-number (uri): changed the data type from text(127) to uri and added that the Printer 2801 MUST support the ‘tel:’ URI scheme and MAY support others, such as “fax:’. 2802

Page 95: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

PWG-5100.11-YYYY IPP: Job and Printer Extensions – Set 2 (JPS2) November 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 2803 from the Saved Job to the job copy, so that the job is NOT re-saved. 2804

8. Section 7.9.1.2.3.2 save-name (name(MAX)): Replaced the error condition when a supplied “save-name” 2805 already exists, with the requirement that the Printer MUST save the job even if the “save-name” already 2806 exists, since the “job-id” is what distinguishes Saved Jobs. 2807

9. Section 7.9.1.2.3.3 save-document-format (mimeMediaType): Added that the Printer is free to store saved 2808 data in any form for convenient, fast, and/or compact, in addition to the format indicated by the “save-2809 document-format” attribute. 2810

10. Section 7.11 proof-print (collection): Proof Print Job is a Retained Job with the “proof-print” attribute 2811 included. When the Proof Print Job is reprinted, the “proof-print” attribute is not copied to the job of the job 2812 and the Proof Print Job is then aged out as usual. 2813

11. Section 10.3 job-password-supported (integer(0:255)): change the data type from integer(0:127) to 2814 integer(0:255), since the password can be 255 octets long. 2815

12. Section 11.4 Additional keyword values for the “media-type” member attribute - Added a large number of 2816 keywords from [JDF1.4] MediaType and MediaTypeDetails, including the five keywords from “media-2817 material” ('aluminum', 'dry-film', 'paper', 'polyester', 'wet-film') and removed the “media-material” attribute 2818 altogether. 2819

13. Section 11.5.1 media-tooth (type3 keyword | name(MAX)): Added ‘antique’, ‘calendared’, ‘linen’, ‘smooth’, 2820 ‘stipple‘, ‘uncalendared’, and ‘vellum’ keywords from [JDF1.4]. 2821

14. Section 13 IANA Considerations: Add IANA Registrations - work in progress. 2822

15. Section 16 References: Added [JDF1.4] 2823

18.31 1 September 2009 (v0.3): 2824

Agreements made at the IPP WG meeting: 2825 • Agreed that using “job-id” integer(1:MAX) has the handle to uniquely identify saved jobs in a Printer 2826 context makes sense, instead of “document-uri” (uri). 2827 • Agreed that job reprint will be done using one of two operations; 2828

⁃ Resubmit-Job (new) will print a saved job using the same job template attributes as the saved 2829 job, creating a new job (and job ID). 2830 ⁃ Reprocess-Job (defined in RFC 3998) will print a saved job, optionally with new job template 2831 attributes different from the saved job, creating a new job (and job ID). 2832

• Agreed that a job-state-reasons keyword is preferable to a new boolean attribute specifying that a job is 2833 saved, since existing clients already look at job-state-reasons but won't know to look at the new attribute. 2834 • Agreed that job-phone-number should be a tel: URI with fax: as a MAY. 2835 • Lots of discussion about the job-save-disposition: 2836

⁃ Agreed that save-disposition is only used the first time - the job is not re-saved if re-submitted, 2837 re-processed, or re-started. 2838 ⁃ Agreed that save-disposition does not create a new job-id. Instead, the job-state-reasons attribute 2839 will contain the job-saving, job-saved-successfully, or job-save-error keywords. 2840 ⁃ Agreed to keep the save-location member attribute since it allows the client to specify where the 2841 job pool is located. 2842 ⁃ Agreed that the save-name + save-location paragraph concerning existing files needs to be 2843 rewritten. 2844

• Agreed that proof-print is only used the first time - the job is not re-proofed if re-submitted, re-processed, 2845 or re-started. 2846 • Agreed that job-saving, job-saved-successfully, and job-save-error should remain. 2847

Page 96: Standard for Internet Printing Protocol (IPP): Job and ... · Copyright © 2010, Printer Working Group. All rights reserved. 1 2 3 07 November 2010 4 Stable 5 6 The Printer Working

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

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

18.32 3 August 2009 (v0.2) 2848

Changes made to create Prototype Draft - Tom Hastings 2849

Referenced [PWG5100.3] Production Printing Attributes - Set 1 in the Abstract to show the relationship of 2850 this document to that document. 2851

Formatted the boiler plate to follow current PWG practices 2852

Added line numbers 2853

Updated the cross references to current documents - no change tracking 2854

Added Figure 1 caption to Figure 1 and added Table of Figures 2855

Added the missing IANA Registrations - using change tracking 2856

Updated Editors’ addresses and phone numbers. 2857

Removed Summary of other IPP documents 2858

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

Initial Draft - Tom Hastings and Don Fullman 2860

2861

2862