Title: Marrying a Job Ticket to a Page Description Language
1Integrating JDF and PPML
- Marrying a Job Ticket to a Page Description
Language
Steve HiebertSoftware Design EngineerHewlett-Pac
kard Company
2motivation
- JDF is a job ticketing and workflow description
language that is gaining rapid acceptance in the
commercial and enterprise printing arena. JDF
has an active body, CIP4, working on maintaining
and improving the language over time. - PPML is a page description language (PDL)
targeted at variable data printing jobs and
maximizing the re-use of assets to minimize
transport and printing costs. - JDF is, for the most part, PDL agnostic. PPML
is, for the most part, job ticket agnostic. They
each do their own job and have avoided cluttering
their vocabulary with elements from the others
domain. - As such, integration of these two XML
vocabularies to allow cooperation and
interoperation would seem to be a marriage made
in heaven.
3topics to be covered
- PPML
- Origins
- Basic Structure
- JDF
- Origins
- Basic Structure
- Process types considered
- IDPrinting
- Combined process
- Resource modifications, issues and solutions
- Variable Data Printing
- Partitioning
- Resource updates
- Resource modification from the data stream
- TICKET_REF
- TICKET
4origins of PPML
- Personalized Print Markup Language
- PODi Print On Demand initiative
- PPML conceived March, 1999
- PPML project initiated April, 1999
- Versions
- Version 1.0 March, 2000
- Version 1.5 May, 2001
- Version 2.0 April, 2002
- Version 2.1 July, 2002
5PPML
- Page Description Language (PDL)
- Specifies how to manipulate and arrange images on
a page - XML based
- Mostly hierarchical
- Content format agnostic
- PDF
- TIFF
- PostScript
- SVG
- XSL/FO
- Etc.
6basic structure of PPML
7origins of JDF
- Job Definition Format
- Describes prepress, press and post-press
processes - Built upon PPF (CIP3) and PJTF (Adobe)
- CIP4 Cooperation for the Integration of
Processes in Prepress, Press and Post-press - JDF initiated late 1999
- Versions
- Version 1.0 April, 2001
- Version 1.1 April, 2002
- Version 1.1 Revision A September 2002
8JDF
- Job Ticketing and Workflow Language
- XML based
- Hierarchy of processes
- Web of resources
- PDL agnostic
- PDF
- PPML
- Etc.
9basic structure of JDF
10choosing a JDF process model
- IDPrinting
- Pro close mapping to Internet Printing Protocol
(IPP) - Con resource model different from typical JDF
- Many resources referred to directly
- The missing link
- Combined Process
- Follows existing JDF model
- Resource/ResourceLink
- Divide and conquer
- Mix and match processes
- Model a wider variety of print workflows
- Scalable and extensible
- Tightly coupled processes
- Inner inputs and outputs implied
11IDPrinting
- Integrated Digital Printing
- Designed with IPP in mind
- Interpreting Rendering Screening
DigitalPrinting - Input Resources mapping to IPP
- Appendix F of JDF Specification details mapping
- IDPrintingParams
- Several sub-elements and references
- Media
- Runlist
12IDPrinting
- Other Input Resources
- ColorantControl
- Component (Cover, Input, Proof)
- ExposedMedia
- FontPolicy
- InterpretingParams
- RenderingParams
- ScreeningParams
- TransferFunctionControl
13comparing IPP to IDPrintingParams
IDPrintingParams
IPP
- attributes-natural-lang
- ipp-attribute-fidelity
- job-priority
- output-bin
- page-delivery
- print-quality
- sheet-collate
- AttributesNaturalLang
- IDPAttributeFidelity
- IPPJobPriority
- OutputBin
- PageDelivery
- PrintQuality
- SheetCollate
14sub-elements of IDPrintingParams
- Cover
- IDPFinishing, IDPLayout, MediaIntent, MediaSource
- IDPFinishing
- IDPFolding, IDPHolemaking, IDPStitching,
IDPTrimming - IDPHolemaking contains or refers to
HoleMakingParams - IDPLayout
- Very simple layout
- JobSheet
- IDPFinishing, IDPLayout, MediaIntent, MediaSource
- MediaIntent
- Linked to Product nodes, referenced by
IDPrintingParams - MediaSource
15but
- From the JDF Specification
- Controls for IDPrinting are provided in the
IDPrintingParams resource. These controls are
somewhat limited in their scope. If greater
control over various aspects of the printing
process is required, IDPrinting should not be
used.
16JDF Combined process
- From the JDF Specification
- For example, a digital printer may be able to
execute the Interpreting, Rendering, and
DigitalPrinting processes. To accommodate such
devices, JDF allows processes to be grouped
within a node whose Type Combined
17A Combined process node
- JDF Node
- Type"Combined"
- Types"list of processes making up combined node"
- Ordering is significant
- May repeat, e.g., Types"Trimming Folding
Trimming" - Resource and ResourceLink pools are merged
- Links specify the target process(es)
- All resources must be available/complete to start
- Input and Output resources of inner processes are
implied
18processes to model a digital print workflow mix
and match
- LayoutPreparation
- Imposition
- Interpreting
- Rendering
- Screening
- DigitalPrinting
- Stitching
- Folding
- Trimming
- HoleMaking
19JDF Combined process assumptions
- The processes in a combined process are tightly
coupled. - The processes in a combined process have
knowledge of one another. - The processes in a combined process can inform
each other about values obtained from their
resources.
20A JDF Combined Process Node
21Combined process example
ltJDF Type "Combined" Types "DigitalPrinting
Gathering Stitching" ID "J1"gt
ltResourceLinkPoolgt lt!-- digital printing
parameters --gt ltDigitalPrintingParamsLink
Usage"Input" CombinedProcessIndex"0"
rRef"L1"/gt lt!-- gathering parameters --gt
ltGatheringParamsLink Usage"Input"
CombinedProcessIndex"1" rRef"L4"/gt lt!--
Stitching parameters --gt ltStitchingParamsLink
Usage"Input" CombinedProcessIndex"2"
rRef"L6"/gt lt!-- input sheets --gt ltMediaLink
Usage"Input" CombinedProcessIndex"0"
rRef"L2"/gt lt!-- stitched output components
--gt ltComponentLink Usage"Output"
CombinedProcessIndex"2" rRef"L7"/gt
lt/ResourceLinkPoolgt ltResourcePoolgt
lt/ResourcePoolgt lt/JDFgt
22modifying resources at runtime
- Traditional challenges
- Challenges added by Variable Data Printing (VDP)
- Traditional JDF
- Partitioning
- Part
- Features added to JDF for VDP
- Resource updates
23traditional challenges
- Repetitive processes applied to similar but
different entities - Files
- Sheets
- Surfaces
- Separations
- Concise representation
- Avoid multiple Nodes of same process each with
its own resources - Avoid repeating the common portions of resource
definitions
24variable data printing challenges
- Database driven
- Text
- Images
- Media!
- Etc.
- Streams, in particular transactional processing
- A job without end
25varying resources - traditional
- Partitions
- Nested resources with selection criteria
- E.g., a Media resource may contain 0 or more
Media resources - Outer resource is root
- Inner resources are leaves
- Inner resources may nest
- PartIDKeys in root
- Define selection types
- Enumeration, defined for each partitionable
resource - PartIDKeys in leaves
- Each key becomes an attribute name
- Define values for those types
- Based on up front knowledge
- Assumes an algorithm to select
- Algorithm becomes value of attribute
26possible PartIDKeys values(1 or more)
- BlockName
- DocCopies
- DocIndex
- DocRunIndex
- DocSheetIndex
- FountainNumber
- LayerIDs
- Location
- Option
- PageNumber
- PartVersion
- PreviewType
- RibbonName
- Run
- RunIndex
- RunTags
- RunPage
- Separation
- SetIndex
- SheetIndex
- SheetName
- Side
- SignatureName
- TileID
- WebName
27partitioning a RunList(JDF 1.1 specification
excerpts)
7.2.115 RunList RunList resources describe an
ordered set of LayoutElement or ByteMap elements.
Ordering and structure are defined using the
generic partitioning mechanisms as described in
3.9.2 Description of Partitionable
Resources. Resource Properties Resource
class Parameter Resource referenced
by - Partition DocIndex, PartVersion, Run,
RunPage, Separation Input of processes RunLists
are used as input resources by most processes
that act on content data Output of
processes RunLists are used as output resources
by most processes that act on content data Table
3.25 Contents of the Part element
Run
The Run attribute selects a set of partitioned
RunList elements from a RunList resource.
28a partitioned RunList
ltRunList ID"Link0003" Class"Parameter"
Status"Available" PartIDKeys"Run"gt ltRunList
Run"1" Pages"0-1"gt ltLayoutElementgt ltFileSpec
URL"File//File1.pdf"/gt lt/LayoutElementgt lt/RunLis
tgt ltRunList Run"2" Pages"0-1"gt ltLayoutElementgt
ltFileSpec URL"File//File2.pdf"/gt lt/LayoutElement
gt lt/RunListgt lt/RunListgt
29referencing a partitioned RunList
ltResourceLinkPoolgt ltRunListLink rRef"Link003"
Usage"Input"gt ltPart Run"1"/gt
lt/RunListLinkgt ltRunListLink rRef"Link003"
Usage"Input"gt ltPart Run"2"/gt
lt/RunListLinkgt lt/ResourceLinkPoolgt Explicit
references to partitions
ltResourceLinkPoolgt ltRunListLink rRef"Link003"
Usage"Input/gt lt/ResourceLinkPoolgt Implicit
reference to partitions
30varying resources - VDP
- Respond to non-algorithmic events
- Three attempts
- Direct setting of resource value
- Causes addressing problems (nested resources)
- Uncontrolled, anything can happen
- Update messages
- Double indirection to ease addressing problems
- Address the message by ID
- ID of receiving process in the message
- Allowable messages listed in UpdateMessagePool
- Update resources
- One level of addressing
- Allowable updates contained within the resource
itself - Very clear which update goes with which resource
- Very clear what updates may happen to a resource
31resource updates
- Available for all process input resources
- Resource Update named after containing resource
with "Update" appended - E.g., DigitalPrintingParams may contain 0 or more
DigitalPrintingParamsUpdate elements - Update has same content and attributes as parent
- All attributes and content are optional in Update
- Update does not inherit from parent
- Updates set processor state
32a resource with updates
ltDigitalPrintingParams ID"InitialDigitalPrintingP
arams" Class"Parameter" Status"Available"
Collate"None"gt ltDigitalPrintingParamsUpdate
UpdateID"CollateEnabled" Collate"Sheet"/gt ltDigit
alPrintingParamsUpdate UpdateID"CollateDisabled"
Collate"None"/gt lt/DigitalPrintingParamsgt
Note all IDs must be unique
33activating a resource update
- PPML
- TICKET_REF
- Placed within PPML data stream
- May occur before or within a PPML construct
- An update, once activated, remains in effect
until overridden or out of scope - Activates a resource update
- Address outer (containing) resource to reset to
initial state - TICKET
- Placed at start of PPML data stream
- Contains or refers to job ticket
- May or may not be JDF
34activating a resource update with TICKET_REF
- May occur within
- PPML
- DOCUMENT_SET
- DOCUMENT
- PAGE
- MARK
- REUSABLE_OBJECT, OCCURRENCE_LIST
- No content
- Single attribute ExtRefID
- Updates processor state
35resource update before
ltDOCUMENT ...gt ltTICKET_REF ExtIDRef"Media_CoverS
tock"/gt ltPAGE ...gt ltMARK...gt... lt/PAGEgt ltTICK
ET_REF ExtIDRef"Media_White"/gt ltPAGE
...gt...lt/PAGEgt ltPAGE ...gt...lt/PAGEgt ltPAGE
...gt...lt/PAGEgt ltPAGE ...gt...lt/PAGEgt ltTICKET_REF
ExtIDRef"Media_CoverStock"/gt ltPAGE
...gt ltMARK...gt ... lt/PAGEgtlt/DOCUMENTgt
36resource update within
ltDOCUMENT ...gt ltTICKET_REF ExtIDRef"Media_White"
/gt ltPAGE ...gt ltTICKET_REF ExtIDRef"Media_Cover
Stock"/gt ltMARK...gt... lt/PAGEgt ltPAGE
...gt...lt/PAGEgt ltPAGE ...gt...lt/PAGEgt ltPAGE
...gt...lt/PAGEgt ltPAGE ...gt...lt/PAGEgt ltPAGE
...gt ltTICKET_REF ExtIDRef"Media_CoverStock"/gt
ltMARK...gt ... lt/PAGEgtlt/DOCUMENTgt
37PPML TICKET
- May contain or refer to the JDF job ticket
- INTERNAL_DATA
- EXTERNAL_DATA
- Format attribute
- E.g., application/vnd.cip4-jdfxml
- Not yet registered with the IANA
- xml described in IETF RFC 3023
- http//www.rfc-editor.org/rfc/rfc3023.txt
38job ticket embedded in PPML
ltPPMLgt ltTICKET Format"application/vnd.cip4-jdfxm
l"gt ltINTERNAL_DATA Encoding"text/xml"
xmlnsjdf"http//www.CIP4.org/JDFSchema_1"gt ltjdf
JDF Type"Combined" ... gt ... lt/jdfJDFgt lt/INTER
NAL_DATAgt lt/TICKETgt ... lt/PPMLgt
39job ticket referenced from PPML
ltPPMLgt ltTICKET Format"application/vnd.cip4-jdfxm
l"gt ltEXTERNAL_DATA Src"MyTicket.jdf"/gt lt/TICKETgt
lt/PPMLgt
40for further reading
- JDF 1.1a Specification
- http//www.cip4.org/documents/jdf_specifications/i
ndex.html - PPML 2.1 Specification (on request)
- http//www.podi.org
- PPML Job Ticket 1.1 Specification (on request)
- http//www.podi.org
- Internet Printing Protocol (IPP)
- http//www.pwg.org/ipp/
41(No Transcript)