12. IPP Extensions
Table of Contents
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:
Internal extensions, which are intrinsic to SavaPage.
External extensions, as defined in implementation specific configuration files.
12.1. Internal IPP Extensions
Internal IPP Extension attributes are intrinsicto 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.
12.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.
12.1.1.1. org.savapage-finishings-staple
Staple positions are specified with respect to portrait media orientation. See RFC3806.
Value |
Name |
Syntax |
Reference |
|---|---|---|---|
3 |
none |
1setOf type2 enum |
RFC8011 |
20 |
staple-top-left |
1setOf type2 enum |
RFC8011 |
21 |
staple-bottom-left |
1setOf type2 enum |
RFC8011 |
22 |
staple-top-right |
1setOf type2 enum |
RFC8011 |
23 |
staple-bottom-right |
1setOf type2 enum |
RFC8011 |
24 |
edge-stitch-left |
1setOf type2 enum |
RFC8011 |
25 |
edge-stitch-top |
1setOf type2 enum |
RFC8011 |
26 |
edge-stitch-right |
1setOf type2 enum |
RFC8011 |
27 |
edge-stitch-left-bottom |
1setOf type2 enum |
RFC8011 |
28 |
staple-dual-left |
1setOf type2 enum |
RFC8011 |
29 |
staple-dual-top |
1setOf type2 enum |
RFC8011 |
30 |
staple-dual-right |
1setOf type2 enum |
RFC8011 |
31 |
staple-dual-bottom |
1setOf type2 enum |
RFC8011 |
32 |
staple-triple-left |
1setOf type2 enum |
PWG5100.1 |
33 |
staple-triple-top |
1setOf type2 enum |
PWG5100.1 |
34 |
staple-triple-right |
1setOf type2 enum |
PWG5100.1 |
35 |
staple-triple-bottom |
1setOf type2 enum |
PWG5100.1 |
12.1.1.2. org.savapage-finishings-punch
Punch positions are specified with respect to portrait media orientation. See RFC3806.
Value |
Name |
Syntax |
Reference |
|---|---|---|---|
3 |
none |
1setOf type2 enum |
RFC8011 |
70 |
punch-top-left |
1setOf type2 enum |
PWG5100.1 |
71 |
punch-bottom-left |
1setOf type2 enum |
PWG5100.1 |
72 |
punch-top-right |
1setOf type2 enum |
PWG5100.1 |
73 |
punch-bottom-right |
1setOf type2 enum |
PWG5100.1 |
74 |
punch-dual-left |
1setOf type2 enum |
PWG5100.1 |
75 |
punch-dual-top |
1setOf type2 enum |
PWG5100.1 |
76 |
punch-dual-right |
1setOf type2 enum |
PWG5100.1 |
77 |
punch-dual-bottom |
1setOf type2 enum |
PWG5100.1 |
78 |
punch-triple-left |
1setOf type2 enum |
PWG5100.1 |
79 |
punch-triple-top |
1setOf type2 enum |
PWG5100.1 |
80 |
punch-triple-right |
1setOf type2 enum |
PWG5100.1 |
81 |
punch-triple-bottom |
1setOf type2 enum |
PWG5100.1 |
82 |
punch-quad-left |
1setOf type2 enum |
PWG5100.1 |
83 |
punch-quad-top |
1setOf type2 enum |
PWG5100.1 |
84 |
punch-quad-right |
1setOf type2 enum |
PWG5100.1 |
85 |
punch-quad-bottom |
1setOf type2 enum |
PWG5100.1 |
12.1.1.3. org.savapage-finishings-fold
Value |
Name |
Syntax |
Reference |
|---|---|---|---|
3 |
none |
1setOf type2 enum |
RFC8011 |
90 |
fold-accordion |
1setOf type2 enum |
PWG5100.1 |
91 |
fold-double-gate |
1setOf type2 enum |
PWG5100.1 |
92 |
fold-gate |
1setOf type2 enum |
PWG5100.1 |
93 |
fold-half |
1setOf type2 enum |
PWG5100.1 |
94 |
fold-half-z |
1setOf type2 enum |
PWG5100.1 |
95 |
fold-left-gate |
1setOf type2 enum |
PWG5100.1 |
96 |
fold-letter |
1setOf type2 enum |
PWG5100.1 |
97 |
fold-parallel |
1setOf type2 enum |
PWG5100.1 |
98 |
fold-poster |
1setOf type2 enum |
PWG5100.1 |
99 |
fold-right-gate |
1setOf type2 enum |
PWG5100.1 |
100 |
fold-z |
1setOf type2 enum |
PWG5100.1 |
12.1.1.4. org.savapage-finishings-booklet
Keyword Value |
Syntax |
Reference |
|---|---|---|
none |
type2 keyword |
RFC8011 |
toleft-totop |
type2 keyword |
PWG5100.3 |
toright-tobottom |
type2 keyword |
PWG5100.3 |
Also see Booklet Imposition
Important
For the right booklet cost calculation, make sure to activate the Booklet SPConstraint Set.
12.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).
Value |
Name |
Syntax |
Reference |
|---|---|---|---|
3 |
none |
1setOf type2 enum |
RFC8011 |
14 |
EachSet |
1setOf type2 enum |
PWG5100.1 |
12.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
Tip
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.
12.1.2. Internal IPP Job Extensions
These options specify actions performed on a single printed copy. Each
option is prefixed with *SPJob/Copy:
See Job Copy Options.
12.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.
Keyword Value |
Syntax |
Reference |
|---|---|---|
no-cover |
type2 keyword |
PWG5100.3 |
print-none |
type2 keyword |
PWG5100.3 |
print-front |
type2 keyword |
PWG5100.3 |
print-back |
type2 keyword |
PWG5100.3 |
print-both |
type2 keyword |
PWG5100.3 |
For example:
*SPJob/Copy: org.savapage-cover-front-type \
*no-cover print-none print-front print-back print-both ①
- 1:
Option to select
no-coveras default and four other keyword values.
12.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-3as default media source for the cover.
12.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.
Keyword Value |
Syntax |
Reference |
|---|---|---|
no-cover |
type2 keyword |
PWG5100.3 |
print-none |
type2 keyword |
PWG5100.3 |
print-front |
type2 keyword |
PWG5100.3 |
print-back |
type2 keyword |
PWG5100.3 |
print-both |
type2 keyword |
PWG5100.3 |
Also see org.savapage-cover-front-type.
12.1.2.4. org.savapage-cover-back-media-source
The IPP media-source the cover is printed from. Also see org.savapage-cover-front-media-source.
12.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 \
*FrontCoverPrintTray/TRAY3
*SPExtra/org.savapage-cover-front-media-source/tray-4: cover-front-tray-4 \
org.savapage-cover-front-type/!no-cover \
*FrontCover/Yes \
*FrontCoverPrintTray/TRAY4
12.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> \ ①
<copy>/[!]<value> ... \ ②
<attr>/[!]<value> ... \ ③
- 1:
Decimal point
<cost>and identifying<mnemonic>.- 2:
One or more IPP
<copy>/<value>pairs of typeSPJob/Copy. An optional!before a value negates it, and selects all other attribute values.- 3:
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 \
media/iso_a4_210x297mm
*SPJob/Copy/Cost: 0.0400 cost-cover-front-A3 \
org.savapage-cover-front-type/!no-cover \
media/iso_a3_297x420mm
12.1.3. Internal IPP Job Ticket Extensions
These Internal IPP extensions are used in Job Ticketing Cost Rules. See Job Ticket Extensions.
12.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.
Keyword Value |
Syntax |
Reference |
|---|---|---|
none |
type2 keyword |
RFC8011 |
laminate |
type2 keyword |
PWG5100.1 |
bind |
type2 keyword |
PWG5100.1 |
adhesive |
type2 keyword |
Candidate Standard PWG 5100.1-2014: “sheets are bound using glue or adhesive.” |
12.1.3.2. org.savapage-cover-type
Caution
This attribute is intended for externally printed Job Tickets only.
The same PDF document must be printed twice with different page ranges:
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.
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.
Keyword Value |
Syntax |
Reference |
|---|---|---|
no-cover |
type2 keyword |
PWG5100.3 |
int.printfront |
type2 keyword |
SavaPage Extension: a single-sided printed cover page. |
int.printboth |
type2 keyword |
SavaPage Extension: a double-sided printed cover page. |
For example:
*SPJobTicket/Copy: org.savapage-cover-type \
*no-cover int.printfront int.printboth ①
- 1:
Option to select
no-coveras default and two internal values.
The color of the cover can be specified with org.savapage-cover-type-color
12.1.3.3. org.savapage-cover-type-color
This 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
whiteas default and several other IANA definedmedia-colorvalues.
12.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.
Keyword Value |
Syntax |
Reference |
|---|---|---|
none |
type2 keyword |
RFC8011 |
job-start-sheet |
type2 keyword |
PWG5100.3: “A job sheet MUST be printed to indicate the start of the job”. |
job-end-sheet |
type2 keyword |
PWG5100.3: “A job sheet MUST be printed to indicate the end of the job”. |
12.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.
12.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
org.savapage.int- prefix.
12.1.4.1. org.savapage.int-page-rotate180
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 org.savapage.int-page-rotate180 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.
Keyword Value |
Syntax |
Description |
|---|---|---|
0 |
boolean |
Do not rotate. |
1 |
boolean |
Rotate by 180 degrees. |
Note
org.savapage.int-page-rotate180 can be used in
SPConstraint rules.