Binary Representation and Interchange Format

The Binary Representation and Interchange Format consists of the Binary Structure Representation and Interchange Format and the Binary Content Representation and Interchange Format.

Binary Structure Representation and Interchange Format

The Binary Structure Representation and Interchange Format is based on ASN.1. The ASN.1 types which are used to represent base structure element values are described in 38.1.1.

The ASN.1 modules which comprise the structure definition are specified in through . The encoding of the SPDL structure shall be as defined in ISO/IEC 8825. All tags which are optional by virtue of IMPLICIT declarations shall be omitted in the Binary Structure Representation and Interchange Format.

Base Structure Element Value Types

The encoding of the base structure element value types shall be as follows.

Boolean type

Values of the Boolean type are encoded by values of the BOOLEAN type.

Enumerated types

Values of the Enumerated types are encoded by values of specific ENUMERATED types.

Integer type

Values of the Integer type are encoded by values of the INTEGER type.

Real type

Values of the Real type are encoded by values of the REAL type.

Printable String type

Values of the Printable String type are encoded by values of the PrintableString type.

Octet String type

Values of the Octet String type are encoded by values of the OctetString type.

Name type

Values of the Name type are encoded by values of the VisibleString type.

Object Identifier type

Values of the Object Identifier type are encoded by values of the OBJECT IDENTIFIER type.

Public Identifier type

Values of the Public Identifier type are encoded by values of the VisibleString type.

Environment Name type

Values of the Environment Name type are encoded by values of the VisibleString type.

Structured Name type

Values of the Structured Name type are encoded by instances of the Structured-Name type as defined by ISO/IEC 9541-2 .

Comments

Comments are encoded by values of the IA5String type.

SPDL Structure Definition Module

ISO10180-SPDL {iso(1) standard(0) 10180 modules(1) spdl(0)} DEFINITIONS ::= BEGIN EXPORTS Integer, Cardinal, Positive-Integer, Real, Number, Non-Negative-Number, Printable-String, Name, Environment-ID, Public-Object-ID, Public-Identifier, Environment-Name, Comment, SPDL-Instance, Top-Level-Structure,TokenSequence; IMPORTS Document, Pageset, Picture FROM ISO10180-SPDL-DOC {iso(1) standard(0) 10180 modules(1) document(1)} Includable-Structure FROM ISO10180-SPDL-EXTREF {iso(1) standard(0) 10180 modules(1) extref(2)} Environment-Resource FROM ISO10180-SPDL-RESOURCE {iso(1) standard(0) 10180 modules(1) resource(3)} spdl-external-id FROM ISO10180-SPDL-OID {iso(1) standard(0) 10180 modules(1) oid(6)} ; -- Base types ub-integer INTEGER ::= 2147483647 -- 231-1 -- Integer ::= INTEGER (-(ub-integer)..ub-integer) Cardinal ::= Integer (0..MAX) Positive-Integer ::= Integer (1..MAX) Real ::= REAL -- Includes all basic single width floating point -- -- binary numbers as specified by IEE 754 -- Number ::= CHOICE { integer Integer, real Real } Non-Negative-Number ::= CHOICE { integer-valued Cardinal, real-valued Real (0<..MAX) } Printable-String ::= PrintableString(SIZE(127)) Name ::= [APPLICATION 1] IMPLICIT VisibleString (FROM ( "A".."Z" | "a".."z" |"0".."9" | "_" | "-" | ":" | "." )) -- Beginning with "A".."Z","a".."z", or "." -- Public-Identifier ::= [APPLICATION 2] IMPLICIT VisibleString (SIZE(218)) (FROM ("A".."Z" | "a".."z" | "0".."9" | "'" | "(" | ")" | "+" | "." | "-" | " " | ":" | "=" | "?" | "/" )) -- Satisfying the public identifier syntax -- -- defined by ISO/IEC 9070 -- Public-Object-ID ::= CHOICE { public-identifier Public-Identifier, object-identifier OBJECT IDENTIFIER } Environment-Name ::= [APPLICATION 3] IMPLICIT VisibleString (SIZE(100)) (FROM ( "A".."Z"| "a".."z" | "0".."9" | "'" | "(" | ")" | "+" | "." | "-" | " " | ":" | "=" | "?" | "/" )) -- Satisfying the object-name syntax -- -- defined by ISO/IEC 9070 -- Environment-ID ::= CHOICE { environment-name Environment-Name, public-object-id Public-Object-ID } Comment ::= [APPLICATION 0] IMPLICIT IA5String (SIZE(127)) -- SPDL Instance SPDL-Instance ::= EXTERNAL (WITH COMPONENTS { direct-reference (spdl-external-id) PRESENT, indirect-reference ABSENT, data-value-descriptor ABSENT, encoding (WITH COMPONENTS { single-ASN1-type (INCLUDES Top-Level-Structure), octet-aligned ABSENT, arbitrary ABSENT }) PRESENT }) -- Top Level Structure Top-Level-Structure ::= CHOICE { document Document, resource Environment-Resource, includable Includable-Structure } -- Block Block ::= CHOICE { pageset Pageset, picture Picture, resource Environment-Resource } -- TokenSequence TokenSequence ::= [APPLICATION 4] IMPLICIT OCTET STRING END

SPDL Document Module

ISO10180-SPDL-DOC {iso(1)standard(0) 10180 modules(1) document(1)} DEFINITIONS ::= BEGIN EXPORTS Document, Pageset, Picture, Picture-Body, Non-SPDL-Picture-Body, Prologue, Informative-Dec, Hint, Context-Declaration, Context-Addition, Setup-Proc; IMPORTS Environment-ID, Comment, TokenSequence FROM ISO10180-SPDL {iso(1) standard(0) 10180 modules(1) spdl(0)} External-Declaration, External-Reference FROM ISO10180-SPDL-EXTREF {iso(1) standard(0) 10180 modules(1) extref(2)} Resource-Def, Resource-Declaration, Internal-Resource-ID FROM ISO10180-SPDL-RESOURCE {iso(1) standard(0) 10180 modules(1) resource(3)} DPI-Declaration FROM ISO10180-SPDL-DPI {iso(1) standard(0) 10180 modules(1) dpi(5)} content-spdl-binary FROM ISO10180-SPDL-OID {iso(1) standard(0) 10180 modules(1) oid(6)}; -- High Level Structure Elements Document ::= CHOICE { pageset Pageset, picture Picture } Pageset ::= [APPLICATION 5] IMPLICIT SEQUENCE { comment Comment OPTIONAL, prologue-or-ref [0] CHOICE { prologue Prologue reference External-Reference } OPTIONAL, body [1] IMPLICIT SEQUENCE OF CHOICE { pageset Pageset, picture Picture, reference External-Reference } } Picture ::= [APPLICATION 6] IMPLICIT SEQUENCE { comment Comment OPTIONAL, content-rep-id Content-Rep-ID, body-or-reference CHOICE { picture-body Picture-Body, non-spdl-body Non-SPDL-Picture-Body, reference External-Reference } } Content-Rep-ID ::= OBJECT IDENTIFIER Picture-Body ::= [APPLICATION 7] IMPLICIT SEQUENCE { comment Comment OPTIONAL, prologue-or-ref [0] CHOICE { prologue Prologue reference External-Reference } OPTIONAL, body [1] IMPLICIT SEQUENCE OF CHOICE { picture Picture, tokensequence TokenSequence reference External-Reference } } Non-SPDL-Picture-Body ::= [APPLICATION 33] ANY -- Prologue Structure Elements Prologue ::= [APPLICATION 8] IMPLICIT SEQUENCE { comment Comment OPTIONAL, external-dec [0] IMPLICIT SEQUENCE OF External-Declaration OPTIONAL, informative-dec-or-ref [1] CHOICE { informative-dec Informative-Dec, reference External-Reference } OPTIONAL, non-spdl-operation [2] IMPLICIT SEQUENCE OF Non-Spdl-Operation OPTIONAL, dpi-dec-or-ref [3] CHOICE { dpi-declaration DPI-Declaration, reference External-Reference } OPTIONAL, context-dec-or-ref [4] CHOICE { context-declaration Context-Declaration, reference External-Reference } OPTIONAL, resource-def-or-dec [5] IMPLICIT SEQUENCE OF CHOICE { resource-def Resource-Def, resource-dec Resource-Declaration, context-add Context-Addition, reference External-Reference } OPTIONAL, setup-proc-or-ref [6] CHOICE { setup-proc Setup-Proc reference External-Reference } OPTIONAL } Informative-Dec ::= [APPLICATION 9] IMPLICIT SEQUENCE { comment Comment OPTIONAL, set-of-hints [0] IMPLICIT SET OF CHOICE { hint Hint, reference External-Reference } } Hint ::= [APPLICATION 10] IMPLICIT SEQUENCE { comment Comment OPTIONAL, hint-name [0] Environment-ID, hint-value [1] ANY } Non-Spdl-Operation ::= SEQUENCE { comment Comment OPTIONAL, operation-name [0] Environment-ID, operation-value [1] ANY } Context-Declaration ::= [APPLICATION 11] IMPLICIT SEQUENCE { comment Comment OPTIONAL, dictionary-identifiers SEQUENCE OF Internal-Resource-ID } Context-Addition ::= [APPLICATION 12] IMPLICIT SEQUENCE { comment Comment OPTIONAL, dictionary-identifier Internal-Resource-ID } Setup-Proc ::= [APPLICATION 13] IMPLICIT SEQUENCE { comment Comment OPTIONAL, body SEQUENCE OF CHOICE { tokensequence TokenSequence reference External-Reference } } END

External Reference Module

ISO10180-SPDL-EXTREF {iso(1) standard(0) 10180 modules(1) extref(2)} DEFINITIONS ::= BEGIN EXPORTS Includable-Structure,External-Declaration, External-Reference, Location-Identifier; IMPORTS Name, Public-Object-ID, TokenSequence FROM ISO10180-SPDL {iso(1) standard(0) 10180 modules(1) spdl(0)} Pageset, Picture, Picture-Body, Non-SPDL-Picture-Body, Prologue, Informative-Dec, Hint, Context-Declaration, Setup-Proc FROM ISO10180-SPDL-DOC {iso(1) standard(0) 10180 modules(1) document(1)} Resource-Def, Dictionary-Spec, Data-Source-Spec, Color-Space-Spec, Pattern-Spec, Form-Spec FROM ISO10180-SPDL-RESOURCE {iso(1) standard(0) 10180 modules(1) resource(3)} Font-Spec, Font-Ref-Spec, Font-Reference, Font-Properties, Font-Index-Map, Fonttype1-Font-Spec, Remapped-Font-Spec, Glyph-Index-Table, Composite-Font-Spec, User-Font-Spec, Glyph-Index-Map-Spec FROM ISO10180-SPDL-FONTS {iso(1) standard(0) 10180 modules(1) fonts(4)} DPI-Declaration, Additional-DPI FROM ISO10180-SPDL-DPI {iso(1) standard(0) 10180 modules(1) dpi(5)} Font-Attribute-Set FROM ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {iso(1) standard(0) 9541 2 2} Dor FROM DOR-definition {joint-iso-ccitt(2) dor(11) reference-definition(0)}; -- Includable Structure Includable-Structure ::= CHOICE { pageset Pageset, picture Picture, picture-body Picture-Body, non-spdl-pict Non-SPDL-Picture-Body, prologue Prologue, informative-dec Informative-Dec, hint Hint, context-dec Context-Declaration, resource-def Resource-Def, setup-proc Setup-Proc, tokensequence TokenSequence, font-reference Font-Reference, dictionary-spec Dictionary-Spec, font-spec Font-Spec, font-ref-spec Font-Ref-Spec, fonttype1-spec Fonttype1-Font-Spec, remapped-font-spec Remapped-Font-Spec, composite-font-spec Composite-Font-Spec, user-font-spec User-Font-Spec, glyph-index-map-spec Glyph-Index-Map-Spec, glyph-index-table Glyph-Index-Table, font-index-map Font-Index-Map, data-source-spec Data-Source-Spec, color-space-spec Color-Space-Spec, pattern-spec Pattern-Spec, form-spec Form-Spec, dpi-declaration DPI-Declaration, additional-dpi Additional-DPI } -- External Declaration External-Declaration ::= SEQUENCE { comment Comment OPTIONAL, structure-class-id Structure-Class-ID, structure-id External-Reference, structure-location Location-Identifier } Structure-Class-ID ::= ENUMERATED { pageset (0), picture (1), picture-body (2), non-spdl-picture-body (3), prologue (4), informative-declaration (5), hint (6), context-declaration (7), resource-definition (8), dictionary-spec (9), setup-procedure (10), tokensequence (11), font-reference (12), font-attribute-set (13), font-spec (14), font-ref-font-spec (15), fonttype1-font-spec (16), remapped-font-spec (17), composite-font-spec (18), user-font-spec (19), glyph-index-map-spec (20), gitt (21), font-index-map (22), color-space-spec (23), data-source-spec (24), pattern-spec (25), form-spec (26), dpi-declaration (27), additional-dpi (28) } -- Location Identifier Location-Identifier ::= CHOICE { public-id [0] Public-Object-ID, local-location-id [1] OCTET STRING, encoding-dependent CHOICE { dor-identifier [2] Dor, identified-syntax [3] Identified-Syntax-Loc } } Identified-Syntax-Loc ::= EXTERNAL (WITH COMPONENTS { direct-reference PRESENT, indirect-reference ABSENT, data-value-descriptor ABSENT, encoding (WITH COMPONENTS { single-ASN1-type PRESENT octet-aligned ABSENT, arbitrary ABSENT } ) PRESENT } ) END

Resource Definition Module

ISO10180-SPDL-RESOURCE {iso(1) standard(0) 10180 modules(1) resource(3)} DEFINITIONS ::= BEGIN EXPORTS External-Resource-ID, Internal-Resource-ID, Environment-Resource, Resource-Def, Resource-Declaration, Dictionary-Spec, Data-Source-Spec, Color-Space-Spec, Pattern-Spec, Form-Spec; IMPORTS Name, Environment-ID, Public-Object-ID, Comment, TokenSequence FROM ISO10180-SPDL {iso(1) standard(0) 10180 modules(1) spdl(0)} Informative-Dec, Context-Addition, Setup-Proc FROM ISO10180-SPDL-DOC {iso(1) standard(0) 10180 modules(1) document(1)} External-Declaration, External-Reference, Location-Identifier FROM ISO10180-SPDL-EXTREF {iso(1) standard(0) 10180 modules(1) extref(2)} Font-Spec, Glyph-Index-Map-Spec FROM ISO10180-SPDL-FONTS {iso(1) standard(0) 10180 modules(1) fonts(4)}; -- Useful Types External-Resource-ID ::= Environment-ID Internal-Resource-ID ::= Name -- Environment Resource Environment-Resource ::= [APPLICATION 15] IMPLICIT SEQUENCE { comment Comment OPTIONAL, external-dec [0] IMPLICIT SEQUENCE OF External-Declaration OPTIONAL, informative-dec-or-ref [1] CHOICE { informative-dec Informative-Dec, reference External-Reference } OPTIONAL, resource-or-context [2] IMPLICIT SEQUENCE OF CHOICE { resource-dec Resource-Declaration, context-add Context-Addition, reference External-Reference } OPTIONAL, resource-def-or-undef [3] CHOICE { resource-def Resource-Def, resource-undef Resource-Undef, reference External-Reference } } Resource-Undef ::= SEQUENCE { comment Comment OPTIONAL, resource-class-id [0] IMPLICIT Resource-Class-ID, external-resource-id [1] External-Resource-ID } Resource-Def ::= [APPLICATION 16] IMPLICIT SEQUENCE { comment Comment OPTIONAL, resource-class-id [0] Resource-Class-ID, external-resource-id [1] External-Resource-ID, resource-spec-or-ref [2] CHOICE { resource-spec Resource-Spec, reference External-Reference } } Resource-Class-ID ::= ENUMERATED { dictionary (1), indexed-font (2), glyph-index-map (3), color-space (4), data-source (5), filter (6), pattern (7), form (8) } -- Resource Declaration Resource-Declaration ::= SEQUENCE { comment Comment OPTIONAL, resource-class-id [0] IMPLICIT internal-resource-id [1] IMPLICIT external-resource-id [2] External-Resource-ID } -- Resource Specifications Resource-Spec CHOICE { dictionary-spec Dictionary-Spec, font-spec Font-Spec, glyph-map-spec Glyph-Index-Map-Spec, color-space-spec Color-Space-Spec, data-source-spec Data-Source-Spec, pattern-spec Pattern-Spec, form-spec Form-Spec } Dictionary-Spec ::= [APPLICATION 17] IMPLICIT SEQUENCE { comment Comment OPTIONAL, specification SEQUENCE OF CHOICE { tokensequence TokenSequence reference External-Reference } } Color-Space-Spec ::= [APPLICATION 18] IMPLICIT SEQUENCE { comment Comment OPTIONAL, color-space-family [0] Public-Object-ID, primary-set-spec CHOICE { primary-set-id [1] Public-Object-ID primary-list [2] IMPLICIT SEQUENCE OF Public-Object-ID } OPTIONAL, specification [3] IMPLICIT SEQUENCE OF CHOICE { tokensequence TokenSequence reference External-Reference } } Data-Source-Spec ::= [APPLICATION 19] IMPLICIT SEQUENCE { comment Comment OPTIONAL, specification CHOICE { location-identifier [0] Location-Identifier, data-block [1] OCTET STRING } } Pattern-Spec ::= [APPLICATION 20] IMPLICIT SEQUENCE { comment Comment OPTIONAL, specification SEQUENCE OF CHOICE { tokensequence TokenSequence reference External-Reference } } Form-Spec ::= [APPLICATION 21] IMPLICIT SEQUENCE { comment Comment OPTIONAL, specification SEQUENCE OF CHOICE { tokensequence TokenSequence reference External-Reference } } END

Fonts and Glyph Index Map Module

ISO10180-SPDL-FONTS {iso(1) standard(0) 10180 modules(1) fonts(4)} DEFINITIONS ::= BEGIN EXPORTS Glyph-ID, Font-Spec, Font-ID-Spec, Font-Ref-Spec, Font-Reference, Fonttype1-Font-Spec, Remapped-Font-Spec, Glyph-Index-Table, Composite-Font-Spec, Font-Index-Map-Spec, User-Font-Spec, Glyph-Index-Map-Spec; IMPORTS Public-Object-ID, Comment FROM ISO10180-SPDL {iso(1) standard(0) 10180 modules(1) spdl(0)} External-Reference FROM ISO10180-SPDL-EXTREF {iso(1) standard(0) 10180 modules(1) extref(2)} External-Resource-ID FROM ISO10180-SPDL-RESOURCE {iso(1) standard(0) 10180 modules(1) resource(3)} Structured-Name FROM ISO9541-SN {iso(1) standard(0) 9541 2 3} Font-Attribute-Set FROM ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {iso(1) standard(0) 9541 2 2} -- Glyph Identifiers Structured-Glyph-Name ::= Structured-Name ( WITH COMPONENTS { owner-name PRESENT, owner-description OPTIONAL, object-name PRESENT, object-description OPTIONAL } ) Simple-Glyph-Name ::= Name (SIZE(1..100)) (FROM ( "A".."Z " | "a".."z" | "0".."9" | "_" | "-" | ":" | "." )) -- Beginning with "A".."Z " or "a".."z" -- Glyph-ID ::= CHOICE { structured-name [0] Structured-Glyph-Name, simple-name [1] Simple-Glyph-Name } -- Font Specifications Font-Spec ::= CHOICE { font-id-spec Font-ID-Spec, font-ref-spec Font-Ref-Spec, fonttype1-spec Fonttype1-Spec, remapped-font-spec Remapped-Font-Spec, composite-font-spec Composite-Font-Spec, user-font-spec User-Font-Spec } -- Font Identifier Font Specification Font-ID-Spec ::= [APPLICATION 22] IMPLICIT SEQUENCE { comment Comment OPTIONAL, indexed-font-id External-Resource-ID } -- Font Reference Font Specification Font-Ref-Spec ::= [APPLICATION 23] IMPLICIT SEQUENCE { comment Comment OPTIONAL, font-reference-or-ref [0] CHOICE { font-reference Font-Reference, reference External-Reference }, glyph-index-map-id [1] Glyph-Index-Map-ID } -- Font Reference Font-Reference ::= [APPLICATION 24] IMPLICIT SEQUENCE { comment Comment OPTIONAL, font-resource-id [0] External-Resource-ID OPTIONAL, required-properties CHOICE { required-props [2] Font-Attribute-Set, rp-reference [3] External-Reference } OPTIONAL, advisory-properties CHOICE { advisory-props [4] Font-Attribute-Set, ap-reference [5] External-Reference } OPTIONAL, match-rules [6] Public-Object-ID OPTIONAL, satisfaction-criterion [7] Public-Object-ID OPTIONAL } } -- Font Type 1 Font Specification Glyph-Index-Map-ID ::= CHOICE { glyph-index-map [0] External-Resource-ID } Fonttype1-Font-Spec ::= [APPLICATION 25] IMPLICIT SEQUENCE { comment Comment OPTIONAL, font-spec-or-ref CHOICE { base-font-spec OCTET STRING, reference External-Reference } } -- Remapped Font Specification Remapped-Font-Spec ::= [APPLICATION 26] IMPLICIT SEQUENCE { comment Comment OPTIONAL, font-id [0] External-Resource-ID, remap CHOICE { gim-id [1] External-Resource-ID, gitt-or-ref [2] CHOICE { gitt Glyph-Index-Table reference External-Reference } } } Glyph-Index-Table ::= [APPLICATION 27] IMPLICIT SEQUENCE { comment Comment OPTIONAL, table-size [0] IMPLICIT Cardinal, glyph-indices [1] IMPLICIT SEQUENCE OF Cardinal } -- Composite Font Specification Composite-Font-Spec ::= [APPLICATION 28] IMPLICIT SEQUENCE { comment Comment OPTIONAL, fmap-type [0] IMPLICIT Cardinal, fmap-param [1] FMap-Parameters,} OPTIONAL, font-index-map-or-ref [2] CHOICE { font-index-map Font-Index-Map, reference External-Reference }, font-list [3] IMPLICIT SEQUENCE OF Font-Spec } FMap-Parameters ::= SET { comment Comment OPTIONAL, escchar [0] IMPLICIT Cardinal OPTIONAL, shiftout [1] IMPLICIT Cardinal OPTIONAL, shiftin [2] IMPLICIT Cardinal OPTIONAL, subsvector [3] IMPLICIT OCTETSTRING OPTIONAL } Font-Index-Map ::= SEQUENCE { comment Comment OPTIONAL, map-size [0] IMPLICIT Cardinal, index-list [1] IMPLICIT SEQUENCE OF Cardinal } -- User Font Specification User-Font-Spec ::= [APPLICATION 29] IMPLICIT SEQUENCE { comment Comment OPTIONAL, definition SEQUENCE OF CHOICE { tokensequence TokenSequence, reference External-Reference } -- Glyph Index Map Specification Glyph-Index-Map-Spec ::= [APPLICATION 30] IMPLICIT SEQUENCE { comment Comment OPTIONAL, map-size [0] IMPLICIT Cardinal, glyph-id-list [1] IMPLICIT SEQUENCE OF Glyph-ID } END

Document Production Instructions Module

ISO10180-SPDL-DPI {iso(1) standard(0) 10180 modules(1) dpi(5)} DEFINITIONS ::= BEGIN EXPORTS Dimension, XYDimensions, Head-Locations, DPI-Declaration, Additional-DPI, Medium-Spec, Medium-Properties, Medium-Weight, Medium-Pre-Punch, Medium-Multi-Part, Medium-Finish-Edges, Medium-Labels, Additional-Property, Medium-Select-DPI, Medium-Selection, Page-Identifier, Current-Medium-DPI, Copies-DPI, Page-Select-DPI, Page-Selection, Sup-Page-Select, Sides-DPI, Plex-DPI, X-Image-Shift-DPI, Y-Image-Shift-DPI, Current-Side-DPI, Finishing-DPI, Stitching-Spec, Binding-Spec, Trimming-Spec, Die-Cutting-Spec, Punching-Spec, Perforating-Spec, Slitting-Spec, Insert-Spec, Insert-Sheet, Cover-Spec, Folding-Spec, Other-Finishing-Spec, Colorant-Set-DPI, Colorant-Set-Desc, Doc-Start-Msg-DPI, Aux-Page-DPI, Doc-Comment-DPI, Timeout-DPI, Abort-Policy-DPI, Stacking-DPI, Doc-End-Msg-DPI; IMPORTS Cardinal, Number, Non-Negative-Number, Printable-String, Environment-ID, Public-Object-ID FROM ISO10180-SPDL {iso(1) standard(0) 10180 modules(1) spdl(0)} -- Useful data types Dimension ::= SEQUENCE { comment Comment OPTIONAL, tolerance [0] Non-Negative-Number OPTIONAL, dimension-value CHOICE { named-dimension [1] Environment-ID, numeric-dimension [2] Non-Negative-Number } } XYDimensions ::= SEQUENCE { comment Comment OPTIONAL, tolerance [0] Non-Negative-Number OPTIONAL, xydimensions-value CHOICE { named-xydimensions [1] Environment-ID, numeric-xydimensions [2] IMPLICIT SEQUENCE { x-dimension [0] Non-Negative-Number, y-dimension [1] Non-Negative-Number } } } Head-Locations ::= SEQUENCE { comment Comment OPTIONAL, tolerance [0] Non-Negative-Number OPTIONAL, head-locations-value CHOICE { named-head-locations [1] Environment-ID, numeric-head-locations [2] IMPLICIT SEQUENCE OF Non-Negative-Number } } Edge ::= ENUMERATED { bottom-edge (0), right-edge (1), top-edge (2), left-edge (3) } DPI-Declaration ::= [APPLICATION 31] IMPLICIT SET { comment Comment OPTIONAL, medium-dpi [0] IMPLICIT Medium-DPI OPTIONAL, medium-select-dpi [1] IMPLICIT Medium-Select-DPI OPTIONAL current-medium-dpi [2] IMPLICIT Current-Medium-DPI OPTIONAL, copies-dpi [3] IMPLICIT Copies-DPI OPTIONAL, page-select-dpi [4] IMPLICIT Page-Select-DPI OPTIONAL, sup-page-select-dpi [5] IMPLICIT Sup-Page-Select-DPI OPTIONAL, sides-dpi [6] IMPLICIT Sides-DPI OPTIONAL, plex-dpi [7] Plex-DPI OPTIONAL, x-image-shift-dpi [8] X-Image-Shift-DPI OPTIONAL, y-image-shift-dpi [9] Y-Image-Shift-DPI OPTIONAL, current-side-dpi [10] IMPLICIT Current-Side-DPI OPTIONAL, finishing-dpi [11] IMPLICIT Finishing-DPI OPTIONAL, colorant-set-dpi [12] IMPLICIT Colorant-Set-DPI OPTIONAL, doc-start-msg-dpi [13] IMPLICIT Document-Start-Message-DPI OPTIONAL, aux-page-type-dpi [14] IMPLICIT Aux-Page-Type-DPI OPTIONAL, doc-comment-dpi [15] IMPLICIT Document-Comment-DPI OPTIONAL, timeout-dpi [16] IMPLICIT Timeout-DPI OPTIONAL, abort-policy-dpi [17] Abort-Policy-DPI OPTIONAL, output-bin-dpi [18] Output-Bin-DPI OPTIONAL, output-spec-dpi [19] Output-Spec-DPI OPTIONAL, doc-end-msg-dpi [20] IMPLICIT Document-End-Message-DPI OPTIONAL, additional-dpi [21] IMPLICIT SET OF Additional-DPI OPTIONAL } -- Medium DPI Medium-DPI ::= SEQUENCE OF Medium-Declaration Medium-Declaration ::= SEQUENCE { comment Comment OPTIONAL, medium-id [0] IMPLICIT Name, medium-spec [1] IMPLICIT Medium-Spec } Medium-Spec ::= SET { comment Comment OPTIONAL, medium-name [0] Environment-ID OPTIONAL, medium-message [1] IMPLICIT Printable-String OPTIONAL, medium-props [2] IMPLICIT Medium-Properties OPTIONAL } Medium-Properties ::= SET { comment Comment OPTIONAL, medium-size [0] IMPLICIT XYDimensions OPTIONAL, medium-color [1] Environment-ID OPTIONAL, medium-weight [2] IMPLICIT Medium-Weight OPTIONAL, medium-type [3] Environment-ID OPTIONAL, medium-tooth [4] Environment-ID OPTIONAL, medium-grain [5] Environment-ID OPTIONAL, medium-pre-punch [6] IMPLICIT Medium-Pre-Punch OPTIONAL, medium-multi-part [7] IMPLICIT Medium-Multi-Part OPTIONAL, medium-finished-edges [8] IMPLICIT Medium-Finish-Edges OPTIONAL, medium-labels [9] IMPLICIT Medium-Labels OPTIONAL, additional-props [10] IMPLICIT SET OF Additional-Property OPTIONAL &rcub ; Medium-Weight ::= SET { comment Comment OPTIONAL, value [0] IMPLICIT Cardinal, tolerance [1] IMPLICIT Cardinal OPTIONAL } Medium-Pre-Punch ::= SET { comment Comment OPTIONAL, punch-count [0] IMPLICIT Cardinal, punch-edge [1] IMPLICIT Edge OPTIONAL, punch-diameter [2] IMPLICIT Dimension OPTIONAL, punch-offset [3] IMPLICIT Dimension OPTIONAL, punch-locations [4] IMPLICIT Head-Locations OPTIONAL } Medium-Multi-Part ::= SET { comment Comment OPTIONAL, sequence-number [0] IMPLICIT Cardinal, sequence-length [1] IMPLICIT Cardinal } Medium-Finish-Edges ::= SET (SIZE (4)) OF SET { comment Comment OPTIONAL, finish-edge [0] IMPLICIT Edge, finish-type [1] Environment-ID OPTIONAL } Medium-Labels ::= SET { comment Comment OPTIONAL, per-column [0] IMPLICIT Cardinal, per-row [1] IMPLICIT Cardinal } Additional-Property ::= SET { comment Comment OPTIONAL, property-name [0] Public-Object-ID, property-value [1] ANY } -- Defined by property-name -- -- Medium Select DPI Medium-Select-DPI ::= SEQUENCE OF Medium-Selection Medium-Selection ::= SET { comment Comment OPTIONAL, start-page [0] Page-Identifier, end-page [1] Page-Identifier, medium-name [2] Name } -- Defined by property-name -- Page-Identifier ::= CHOICE { Cardinal } Current-Medium-DPI ::= Name -- Presentation DPI Copies-DPI ::= Cardinal Page-Select-DPI ::= SEQUENCE OF Page-Selection Sup-Page-Select-DPI ::= SEQUENCE OF Page-Selection Page-Selection ::= SEQUENCE { comment Comment OPTIONAL, start-page [0] Page-Identifier, end-page [1] Page-Identifier } Sides-DPI ::= Sides Plex-DPI ::= Public-Object-ID X-Image-Shift-DPI ::= Number Y-Image-Shift-DPI ::= Number Current-Side-DP ::= Sides Sides ::= Cardinal (1..2) -- Finishing DPI Finishing-DPI ::= SEQUENCE { comment Comment OPTIONAL, finishing-message [0] IMPLICIT Printable-String OPTIONAL, finishing-spec CHOICE { named-finishing [1] IMPLICIT SET { comment Comment OPTIONAL, finishing-id Environment-ID }, finishing-spec-list [2] IMPLICIT SEQUENCE OF Finishing-Proc-Spec } Finishing-Proc-Spec ::= CHOICE { stitching-spec [0] Stitching-Spec, binding-spec [1] Binding-Spec, trimming-spec [2] Trimming-Spec, die-cutting-spec [3] Die-Cutting-Spec, punching-spec [4] Punching-Spec, perforating-spec [5] Perforating-Spec, slitting-spec [6] Slitting-Spec, insert-spec [7] Insert-Spec, cover-spec [8] Cover-Spec, folding-spec [9] Folding-Spec, other-finishing-spec [10] Other-Finishing-Spec } Stitching-Spec ::= CHOICE { named-stitching [0] IMPLICIT SET { comment Comment OPTIONAL, stitching-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, process-offset [3] Dimension OPTIONAL, head-locations [4] Head-Locations OPTIONAL, stitch-type [5] Environment-ID OPTIONAL } } Binding-Spec ::= CHOICE { named-binding [0] IMPLICIT SET { comment Comment OPTIONAL, binding-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, binding-type [3] Environment-ID OPTIONAL, binding-color [4] Environment-ID OPTIONAL } } Trimming-Spec ::= CHOICE { named-trimming [0] IMPLICIT SET { comment Comment OPTIONAL, trimming-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, trim-offset [3] Dimension, trim-dimensions [4] XYDimensions } } Die-Cutting-Spec ::= CHOICE { named-die-cutting [0] IMPLICIT SET { comment Comment OPTIONAL, die-cutting-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, die-cut-position [5] XYDimensions, die-cut-name [6] Environment-ID } } Punching-Spec ::= CHOICE { named-punching [0] IMPLICIT SET { comment Comment OPTIONAL, punching-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, process-offset [3] Dimension OPTIONAL, head-locations [4] Head-Locations OPTIONAL, punch-diameter [5] Dimension OPTIONAL } } Perforating-Spec ::= CHOICE { named-perforating [0] IMPLICIT SET { comment Comment OPTIONAL, perforating-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, process-offset [3] Dimension, head-locations [4] Head-Locations, perforation-type [5] Environment-ID } } Slitting-Spec ::= CHOICE { named-slitting [0] IMPLICIT SET { comment Comment OPTIONAL, slitting-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, head-locations [4] Head-Locations} } Insert-Spec ::= CHOICE { named-inserting [0] IMPLICIT SET { comment Comment OPTIONAL, inserting-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, insert-sheet-list [5] IMPLICIT SEQUENCE OF Insert-Sheet } } Insert-Sheet ::= SET { comment Comment OPTIONAL, insert-id CHOICE { insert-name [0] Environment-ID, insert-bin [1] Cardinal }, insert-top-surface [2] ENUMERATED { top (0), bottom (1) } OPTIONAL, insert-after [3] Cardinal, insert-message [4] Printable-String OPT IONAL } Cover-Spec ::= CHOICE { named-covers [0] Environment-ID, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, front-cover [5] CHOICE { cover-name [0] Environment-ID, cover-spec [1] Medium-Description } OPTIONAL, back-cover [6] CHOICE { cover-name [0] Environment-ID, cover-spec [1] Medium-Description } OPTIONAL } Folding-Spec ::= CHOICE { named-folding [0] IMPLICIT SET { comment Comment OPTIONAL, folding-id Environment-ID }, parameters [1] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, head-locations [4] Locations} } Other-Finishing-Spec ::= SET { finishing-op-name [0] Public-Object-ID, finishing-op-parameters CHOICE { named-op [1] IMPLICIT SET { comment Comment OPTIONAL, other-finishing-id Environment-ID }, parameters [2] IMPLICIT SET { comment Comment OPTIONAL, reference-size [0] XYDimensions OPTIONAL, reference-edge [1] Edge OPTIONAL, jog-edge [2] Edge OPTIONAL, process-offset [3] Dimension OPTIONAL, head-locations [4] Locations OPTIONAL, other-parameters [5] ANY } } } -- Colorant Set DPI Colorant-Set-DPI ::= SEQUENCE { comment Comment OPTIONAL, message [0] Printable-String OPTIONAL, colorant-set-spec CHOICE { colorant-set-id [1] Environment-ID, colorant-set-desc [2] IMPLICIT Colorant-Set-Desc } } Colorant-Set-Desc ::= SEQUENCE { comment Comment OPTIONAL, colorant-set-class [0] Public-Object-ID, colorant-spec [1] IMPLICIT SEQUENCE OF Colorant-ID } Colorant-ID ::= Environment-ID Doc-Start-Msg-DPI ::= Printable-String Aux-Page-Type-DPI ::= SET { comment Comment OPTIONAL, start-page [0] Environment-ID OPTIONAL, separator-page [1] Environment-ID OPTIONAL, end-page [2] Environment-ID OPTIONAL } Doc-Comment-DPI ::= Printable-String Timeout-DPI ::= Cardinal Abort-Policy-DPI ::= Environment-ID Output-Bin-DPI ::= SET { comment Comment OPTIONAL, bin-identifier CHOICE { bin-name [0] Environment-ID, bin-number [1] IMPLICIT Cardinal } OPTIONAL, output-positions [2] IMPLICIT Cardinal OPTIONAL } Output-Spec-DPI ::= SET { comment Comment OPTIONAL, collated [0] IMPLICIT BOOLEAN OPTIONAL, offset [1] IMPLICIT BOOLEAN OPTIONAL, burst [2] IMPLICIT BOOLEAN OPTIONAL, additional [3] IMPLICIT SET OF SET { output-spec-name [0] Public-Object-ID, output-spec-value [1] ANY } -- Defined by output-spec-name -- output-spec-name OPTIONAL } Doc-End-Msg-DPI ::= Printable-String -- Additional DPI Additional-DPI ::= [APPLICATION 32] IMPLICIT SEQUENCE{ comment Comment OPTIONAL, dpi-name [0] Public-Object-ID, dpi-value [1] ANY } -- Defined by dpi-name -- END

Binary Content Representation and Interchange Format

The SPDL content consists of sequences of tokens. Each token represents a unit of information which is processed by the content processor. This clause specifies the binary encoding of the tokens in SPDL content.

Token structure and notation

Each token is encoded by a sequence of one or more octets. Each octet consists of eight binary bits which may be specified in any of three ways:

The numerical value is referred to as the binary value of the octet. See . Bit Numbering and Binary Value of an Octet

Fields

Each token consists of one or more sequences of bits which specifies the token type, length, or value. Each such sequence of bits is called a field. A field may be contained in a single octet or may extend over several octets. The fields which specify the token type, length, and value are called the type field, the length field and the value field respectively.

Binary Value of a Field

The binary value of a field is the numerical value represented by the bits in that field considered as binary digits. If the field consists of the bits of more than one octet, the bits of the first octet of the field shall be the high order bits in the field. Thus if the field consists of n bits bn . . b1, the binary value of the field shall be

bn× 2n-1 +bn-1×2n-2+ . . . b1×20

Signed Integer value field

A signed integer value of a field depends on the value of the high order bit of the first octet of the field.

This is the two's complement representation of the signed integer value.

Token types

The binary content encoding uses four basic token types:

The formats of each of basic token types, together with the bit values which distinguish them, are shown in . Basic Token Types

The Type/Value and Type/Length/Value types are further subdivided into 32 subtypes each. For these tokens the type field consists of the basic type specification and the subtype specification.

The first octet of each token specifies the token type and is called the type octet. The basic token type is determined by the value of the type octet as shown in . Type OctetShort Opcode token 64-95Type/Value token 96-127Type/Length/Value token 128-255Short Integer token

The type octet also contains additional information which depends on the basic token type.

The length of Short Opcode, Type/Value and Short Integer tokens is implied by the token type. The length of the type field and the length field of a Type/Length/Value token are implied by the token type, while the number of octets which comprise the value field of is contained in the length field.

The binary encoding provides alternate methods for several varieties of tokens. Any Octet String or Data Block Type/Length/Value token is equivalent to a Long Octet String or Long Data Block Type/Length/Value token with the same value; any Short Integer token is equivalent to a Type/Value Integer token with the same value; and any Short Opcode token is equivalent to a Type/Length/Value executable name token whose value is the Name assigned to the value of the Short Opcode value.

Representation of values

Binary values are used to distinguish token types and subtypes and to specify the length of the value fields of Type/Length/Value tokens. The binary value represented by a field shall be the value of the binary number whose digits are the sequence of bits in the field which are contained in the first octet, followed by the sequence of bits in the field which are contained in the second and any following octets.

Unsigned Integer value field

An Unsigned Integer value field shall consist of either two or four octets. The value of the integer represented shall be the binary value of the Unsigned Integer value field.

Signed Integer value field

A Signed Integer value field shall consist of either two or four octets. The value of the integer represented shall be the signed integer value of the Signed Integer value field.

Floating Point Real Number value field

A Floating Point Real Number value field shall consist of four octets. The value of the real number shall be represented as a basic single width floating point binary number as specified by IEEE 754.

Fixed Point Real Number value field

A Fixed Point Real Number value field shall consist of either three or five octets. If the binary value of the first octet in the value field is r and the signed integer value of of the field consisting of the remaining two or four octets in the value field is n, then the value of the real number represented shall be n÷2r.

Octet String value field

An Octet String value field shall consist of a variable number of octets. The value represented shall be the sequence of octets which comprise the value field.

Data Block value field

A Data Block value field shall consist of a variable number of octets. The value represented shall be the sequence of octets which comprise the value field.

Procedure value field

A Procedure value field shall consist of a variable number of octets. The value represented shall be the sequence of tokens (in the binary encoding) represented by the sequence of octets which comprises the the value field.

Vector of homogeneous numbers value field

A Vector of homogeneous numbers value field shall consist of a variable number of octets.

The Vector represented by the Vector of homogeneous numbers value field shall be the Vector formed by these numbers.

The representation of the elements of the Vector shall depend on the value of the 2nd octet as shown in . 2nd OctetNumber representation 0Unsigned integer as represented by an Unsigned Integer value field 1Signed integer as represented by a Signed Integer value field 2Floating Point Real Number as represented by a Floating Point Real Number value field >8Fixed point Real Number as represented by the second and subsequent octets of a Fixed Point Real Number value field whose initial octet is the value of the 2nd octet minus 8

Short Opcode tokens

A Short Opcode token represents one of 64 executable Names in a single octet. A Short Opcode token is constructed as follows:

The executable Name represented by the Short Opcode token is the Name which corresponds to the binary value of the value field, as specified in .

Type/Value tokens

There are 32 subtypes of the Type/Value token type. The Type/Value type is identified by the high order 3 bits of the type octet, while the subtype is specified by the low order 5 bits of the type octet.

The length of the token and the type of the value represented are implicit in the token type and subtype. The type octet is followed by one or more octets which constitute the value field. The number of octets in the value field and the value specified by the value field is shown in . Type OctetValue LengthValue Specified by the Value Field 641The executable Name corresponding to the binary value of the value field, as specified in annex a 651The executable Name corresponding to 256 plus the binary value of the value field, as specified in annex a 66-67-Reserved 682The Signed Integer represented by the Signed Integer value field consisting of the two octets which follow the type octet 694The Signed Integer represented by the Signed Integer value field consisting of the four octets which follow the type octet 704The Real Number represented by the Floating Point Real Number value field consisting of the four octets following the type octet 713The Real Number represented by the Fixed Point Real Number value field consisting of the three octets following the type octet 725The Real Number represented by the Fixed Point Real Number value field consisting of the five octets following the type octet 73-95-Not assigned

  • The value represented by the value field of tokens whose type octet value is 64 or 65 is the binary value of the field consisting of the low order 13 bits of the token.
  • Subtypes corresponding to type octet values of 66 and 67 are reserved for additional executable Name values.
  • Type/Length/Value tokens

    Type/Length/Value tokens are variable length tokens. The type octet shall be followed by one, two, or four octets which specify the number of octets in the value field. Together these octets are called the length field.

    The type octet values, the length of the corresponding length field, and the type and encoding of the value are shown in . Type Octet ValueLength Field (octets)Value Specified by the Value Field 961an executable Name as represented in the clear text encoding 971a literal Name as represented in the clear text encoding 981an Octet String 992an Octet String 1002a Data Block 1014a Data Block 1022an incomplete Data Block. The following token must be either a Data Block token (type octet=100 or 101) or another incomplete Data Block token (type octet=102) 1032a Procedure 1042a Vector of homogeneous numbers 105-126 unassigned 1272a sequence of octets representing a sequence of encrypted tokens. The first two octets of the value field contain an encryption identifier. The remaining octets contain an encrypted representation of a sequence of tokens

    Short Integer tokens

    A short integer token represents an Integer in the range of -4096 . . . 28 671. The value of the integer shall be the binary value of the type octet minus 36 864.

    Encoding values for operators

    The operators which are defined by the SPDL syntax can be represented by Type/Length/Value tokens whose value is the Name of the operator or by tokens which identify the operator by means of an encoding value or opcode. The opcodes which represent the SPDL operators are specified in .