Appendix L. IPP Extensions

Table of Contents

L.1. Internal IPP Extensions
L.1.1. Internal IPP - PPD Mapping Extensions
L.1.2. Internal IPP Job Extensions
L.1.3. Internal IPP Job Ticket Extensions
L.1.4. Internal IPP Marker
L.2. External IPP Extensions
L.3. IPP Localization

Internet Printing Protocol (IPP) attributes and values are registered by IANA. See the IANA site or the PWG site for a full list.

SavaPage uses two types of extensions:

L.1. Internal IPP Extensions

Internal IPP Extension attributes are intrinsic to SavaPage. To distinguish them from IANA registrations, their names have a org.savapage- prefix. Attribute value extensions with type2 keyword syntax are int. prefixed.

Attributes and values are summarized in the sections below. Attribute values are IANA registered, and the semantics can be found in the Reference documents. Attribute value int. extensions are described separately.

L.1.1. Internal IPP - PPD Mapping Extensions

These Internal IPP extensions are used to map vendor specific PPD options to an independent common denominator. They are never send to CUPS as print job descriptor as such.

L.1.1.1. org.savapage-finishings-staple

Staple positions are specified with respect to portrait media orientation. See RFC3806.

org.savapage-finishings-staple3none1setOf type2 enumRFC8011
org.savapage-finishings-staple20staple-top-left1setOf type2 enumRFC8011
org.savapage-finishings-staple21staple-bottom-left1setOf type2 enumRFC8011
org.savapage-finishings-staple22staple-top-right1setOf type2 enumRFC8011
org.savapage-finishings-staple23staple-bottom-right1setOf type2 enumRFC8011
org.savapage-finishings-staple24edge-stitch-left1setOf type2 enumRFC8011
org.savapage-finishings-staple25edge-stitch-top1setOf type2 enumRFC8011
org.savapage-finishings-staple26edge-stitch-right1setOf type2 enumRFC8011
org.savapage-finishings-staple27edge-stitch-left-bottom1setOf type2 enumRFC8011
org.savapage-finishings-staple28staple-dual-left1setOf type2 enumRFC8011
org.savapage-finishings-staple29staple-dual-top1setOf type2 enumRFC8011
org.savapage-finishings-staple30staple-dual-right1setOf type2 enumRFC8011
org.savapage-finishings-staple31staple-dual-bottom1setOf type2 enumRFC8011
org.savapage-finishings-staple32staple-triple-left1setOf type2 enumPWG5100.1
org.savapage-finishings-staple33staple-triple-top1setOf type2 enumPWG5100.1
org.savapage-finishings-staple34staple-triple-right1setOf type2 enumPWG5100.1
org.savapage-finishings-staple35staple-triple-bottom1setOf type2 enumPWG5100.1

Table L.1. Internal IPP Attribute: org.savapage-finishings-staple

L.1.1.2. org.savapage-finishings-punch

Punch positions are specified with respect to portrait media orientation. See RFC3806.

org.savapage-finishings-punch3none1setOf type2 enumRFC8011
org.savapage-finishings-punch70punch-top-left1setOf type2 enumPWG5100.1
org.savapage-finishings-punch71punch-bottom-left1setOf type2 enumPWG5100.1
org.savapage-finishings-punch72punch-top-right1setOf type2 enumPWG5100.1
org.savapage-finishings-punch73punch-bottom-right1setOf type2 enumPWG5100.1
org.savapage-finishings-punch74punch-dual-left1setOf type2 enumPWG5100.1
org.savapage-finishings-punch75punch-dual-top1setOf type2 enumPWG5100.1
org.savapage-finishings-punch76punch-dual-right1setOf type2 enumPWG5100.1
org.savapage-finishings-punch77punch-dual-bottom1setOf type2 enumPWG5100.1
org.savapage-finishings-punch78punch-triple-left1setOf type2 enumPWG5100.1
org.savapage-finishings-punch79punch-triple-top1setOf type2 enumPWG5100.1
org.savapage-finishings-punch80punch-triple-right1setOf type2 enumPWG5100.1
org.savapage-finishings-punch81punch-triple-bottom1setOf type2 enumPWG5100.1
org.savapage-finishings-punch82punch-quad-left1setOf type2 enumPWG5100.1
org.savapage-finishings-punch83punch-quad-top1setOf type2 enumPWG5100.1
org.savapage-finishings-punch84punch-quad-right1setOf type2 enumPWG5100.1
org.savapage-finishings-punch85punch-quad-bottom1setOf type2 enumPWG5100.1

Table L.2. Internal IPP Attribute: org.savapage-finishings-punch

L.1.1.3. org.savapage-finishings-fold

org.savapage-finishings-fold3none1setOf type2 enumRFC8011
org.savapage-finishings-fold90fold-accordion1setOf type2 enumPWG5100.1
org.savapage-finishings-fold91fold-double-gate1setOf type2 enumPWG5100.1
org.savapage-finishings-fold92fold-gate1setOf type2 enumPWG5100.1
org.savapage-finishings-fold93fold-half1setOf type2 enumPWG5100.1
org.savapage-finishings-fold94fold-half-z1setOf type2 enumPWG5100.1
org.savapage-finishings-fold95fold-left-gate1setOf type2 enumPWG5100.1
org.savapage-finishings-fold96fold-letter1setOf type2 enumPWG5100.1
org.savapage-finishings-fold97fold-parallel1setOf type2 enumPWG5100.1
org.savapage-finishings-fold98fold-poster1setOf type2 enumPWG5100.1
org.savapage-finishings-fold99fold-right-gate1setOf type2 enumPWG5100.1
org.savapage-finishings-fold100fold-z1setOf type2 enumPWG5100.1

Table L.3. Internal IPP Attribute: org.savapage-finishings-fold

L.1.1.4. org.savapage-finishings-booklet

AttributeKeyword ValueSyntaxReference
org.savapage-finishings-bookletnonetype2 keywordRFC8011
org.savapage-finishings-booklettoleft-totoptype2 keywordPWG5100.3
org.savapage-finishings-booklettoright-tobottomtype2 keywordPWG5100.3

Table L.4. Internal IPP Attribute: org.savapage-finishings-booklet

Also see Section K.2.2.2, “Booklet Imposition”


For the right booklet cost calculation, make sure to activate the Booklet SPConstraint Set.

L.1.1.5. org.savapage-finishings-jog-offset

A finishing that shifts Each Set in the output-bin from the previous one by a small amount which is device dependent (PWG5100.1).

org.savapage-finishings-jog-offset3none1setOf type2 enumRFC8011
org.savapage-finishings-jog-offset14EachSet1setOf type2 enumPWG5100.1

Table L.5. Internal IPP Attribute: org.savapage-finishings-jog-offset

L.1.1.6. org.savapage-requesting-user-name

The internal IPP extension org.savapage-requesting-user-name is the equivalent of IPP PRINT_JOB operation attribute requesting-user-name. In the example below it is mapped to PPD Option VENRequestingUserName.

*VENRequestingUserName org.savapage-requesting-user-name


org.savapage-requesting-user-name can be used to pass the value of requesting-user-name as option in a *JCLOpenUI section of a PPD file.

L.1.2. Internal IPP Job Extensions

These options specify actions performed on a single printed copy. Each option is prefixed with *SPJob/Copy:

See Section K.4.1, “Job Copy Options”.

L.1.2.1. org.savapage-cover-front-type

This attribute indicates whether front covers are wanted for a printed copy and which sides of the cover must contain print-stream pages.

AttributeKeyword ValueSyntaxReference
org.savapage-cover-front-typeno-covertype2 keywordPWG5100.3
org.savapage-cover-front-typeprint-nonetype2 keywordPWG5100.3
org.savapage-cover-front-typeprint-fronttype2 keywordPWG5100.3
org.savapage-cover-front-typeprint-backtype2 keywordPWG5100.3
org.savapage-cover-front-typeprint-bothtype2 keywordPWG5100.3

Table L.6. Internal IPP Attribute: org.savapage-cover-front-type

For example:

*SPJob/Copy: org.savapage-cover-front-type \
  *no-cover print-none print-front print-back print-both  1


Option to select no-cover as default and four other keyword values.

L.1.2.2. org.savapage-cover-front-media-source

The IPP media-source the cover is printed from.

For example:

*SPJob/Copy: org.savapage-cover-front-media-source \
  *tray-3 tray-4  1


Option to select tray-3 as default media source for the cover.

L.1.2.3. org.savapage-back-front-type

This attribute indicates whether back covers are wanted for a printed copy and which sides of the cover must contain print-stream pages.

AttributeKeyword ValueSyntaxReference
org.savapage-cover-back-typeno-covertype2 keywordPWG5100.3
org.savapage-cover-back-typeprint-nonetype2 keywordPWG5100.3
org.savapage-cover-back-typeprint-fronttype2 keywordPWG5100.3
org.savapage-cover-back-typeprint-backtype2 keywordPWG5100.3
org.savapage-cover-back-typeprint-bothtype2 keywordPWG5100.3

Table L.7. Internal IPP Attribute: org.savapage-cover-back-type

Also see Section L.1.2.1, “org.savapage-cover-front-type”.

L.1.2.4. org.savapage-cover-back-media-source

The IPP media-source the cover is printed from. Also see Section L.1.2.2, “org.savapage-cover-front-media-source”.

L.1.2.5. Mapping Internal IPP Job Options to PPD

Internal IPP Job Copy options can be mapped to PPD with SPExtra rules as illustrated in the example below.

*SPExtra/org.savapage-cover-front-media-source/tray-3: cover-front-tray-3 \
    org.savapage-cover-front-type/!no-cover \
    *FrontCover/Yes \ 

*SPExtra/org.savapage-cover-front-media-source/tray-4: cover-front-tray-4 \
    org.savapage-cover-front-type/!no-cover \
    *FrontCover/Yes \ 

L.1.2.6. IPP Job Copy Costs

Copy Cost is charged per job copy, and specified for a combination of SPJob/Copy and other (media*) attribute values. Each cost rule is prefixed with *SPJob/Copy/Cost: and formatted like this:

*SPJob/Copy/Cost: <cost> <mnemonic> \  1
   <copy>/[!]<value> ... \  2
   <attr>/[!]<value> ... \  3


Decimal point <cost> and identifying <mnemonic>.


One or more IPP <copy>/<value> pairs of type SPJob/Copy. An optional ! before a value negates it, and selects all other attribute values.


Optionally one or more other IPP <attr>/<value> pairs.

For example:

*SPJob/Copy/Cost: 0.0200 cost-cover-front-A4 \
    org.savapage-cover-front-type/!no-cover \

*SPJob/Copy/Cost: 0.0400 cost-cover-front-A3 \
    org.savapage-cover-front-type/!no-cover \

L.1.3. Internal IPP Job Ticket Extensions

These Internal IPP extensions are used in Job Ticketing Cost Rules. See Section K.5, “Job Ticket Extensions”.

L.1.3.1. org.savapage-finishings-ext

This attribute represents a finishing action, on a set of pages (a copy), executed externally by an operator, on the printed output.

AttributeKeyword ValueSyntaxReference
org.savapage-finishings-extnonetype2 keywordRFC8011
org.savapage-finishings-extlaminatetype2 keywordPWG5100.1
org.savapage-finishings-extbindtype2 keywordPWG5100.1
org.savapage-finishings-extadhesivetype2 keywordCandidate Standard PWG 5100.1-2014: sheets are bound using glue or adhesive.

Table L.8. Internal IPP Attribute: org.savapage-finishings-ext

L.1.3.2. org.savapage-cover-type


This attribute is intended for externally printed Job Tickets only.

The same PDF document must be printed twice with different page ranges:

  1. The first page(s) are printed on a single cover page. The cost for this action is calculated according to the Job Ticket Copy Cost Rules.

  2. The rest of the pages are printed on selected media. The cost for this action is calculated according to the Job Ticket Media Cost Rules.

AttributeKeyword ValueSyntaxReference
org.savapage-cover-typeno-covertype2 keywordPWG5100.3
org.savapage-cover-typeint.printfronttype2 keywordSavaPage Extension: a single-sided printed cover page.
org.savapage-cover-typeint.printbothtype2 keywordSavaPage Extension: a double-sided printed cover page.

Table L.9. Internal IPP Attribute: org.savapage-cover-type

For example:

*SPJobTicket/Copy: org.savapage-cover-type \
  *no-cover int.printfront int.printboth  1


Option to select no-cover as default and two internal values.

The color of the cover can be specified with org.savapage-cover-type-color

L.1.3.3. org.savapage-cover-type-color

Thias attribute specifies the color of the org.savapage-cover-type. For example:

*SPJobTicket/Copy: org.savapage-cover-type-color \
  *white yellow orange red pink blue green  1


Option to select white as default and several other IANA defined media-color values.

L.1.3.4. org.savapage-job-sheets

This attribute determines which Job start/end sheet(s), if any, must be printed with a Job. Contrary to the IPP job-sheets definition, where sheets are part of the job, org.savapage-job-sheets are printed as a separate job. In this way sheets can be printed from a different media-source with distinctive org.savapage-job-sheets-media and media-color.

A job sheet is a single monochrome page with job detail information.

AttributeKeyword ValueSyntaxReference
org.savapage-job-sheetsnonetype2 keywordRFC8011
org.savapage-job-sheetsjob-start-sheettype2 keywordPWG5100.3: A job sheet MUST be printed to indicate the start of the job.
org.savapage-job-sheetsjob-end-sheettype2 keywordPWG5100.3: A job sheet MUST be printed to indicate the end of the job.

Table L.10. Internal IPP Attribute: org.savapage-job-sheets

L.1.3.5. org.savapage-job-sheets-media

The IPP media for org.savapage-job-sheets. Multiple keyword values are allowed, like iso_a4_210x297mm, iso_a3_297x420mm, etc.

L.1.4. Internal IPP Marker

These Internal IPP extensions are used to add a special marker to a print job. They are never send to CUPS as such, but translated by SavaPage to "real" IPP or CUPS options. IPP marker names have a prefix.


SavaPage creates IPP print jobs that are printed according to LandscapeOrientation Minus90. This is convenient most of the time. For example, when a landscape oriented PDF is 4-up printed, and staple-top-right and punch-dual-right are available as finishing. But, what if staple-top-left and punch-dual-left are the only options available? In that case a 180 degrees rotation of the "Finished-Page" is needed. This is where the boolean option comes in. This marker is added to each proxy printer as option to make the printed result "Rotate by 180 degrees", and translated by SavaPage to the proper CUPS orientation-requested and number-up-layout values.

AttributeKeyword ValueSyntaxDescription not rotate. by 180 degrees.

Table L.11. Internal IPP Marker Attribute:

Note can be used in SPConstraint rules.