integrating jdf and ppml
DESCRIPTION
Integrating JDF and PPML. Marrying a Job Ticket to a Page Description Language. Steve Hiebert Software Design Engineer Hewlett-Packard Company. motivation. - PowerPoint PPT PresentationTRANSCRIPT
Page 1September 11, 2002
HP Digital Publishin
gSolutions
Steve Hiebert Integrating JDF and PPML
Integrating JDF and PPML
Marrying a Job Ticket to a Page Description Language
Steve HiebertSoftware Design EngineerHewlett-Packard Company
September 11, 2002 Integrating JDF and PPML
Page 2
HP DigitalPublishin
gSolutions
Steve Hiebert
motivation• 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.
September 11, 2002 Integrating JDF and PPML
Page 3
HP DigitalPublishin
gSolutions
Steve Hiebert
topics 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
September 11, 2002 Integrating JDF and PPML
Page 4
HP DigitalPublishin
gSolutions
Steve Hiebert
origins 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
September 11, 2002 Integrating JDF and PPML
Page 5
HP DigitalPublishin
gSolutions
Steve Hiebert
PPML• 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.
September 11, 2002 Integrating JDF and PPML
Page 6
HP DigitalPublishin
gSolutions
Steve Hiebert
basic structure of PPMLPPML
DOCUMENT
PAGE
MARK
DOCUMENT_SET DOCUMENT_SET ...
DOCUMENT ...
PAGE ...
MARK ...
September 11, 2002 Integrating JDF and PPML
Page 7
HP DigitalPublishin
gSolutions
Steve Hiebert
origins 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
September 11, 2002 Integrating JDF and PPML
Page 8
HP DigitalPublishin
gSolutions
Steve Hiebert
JDF• Job Ticketing and Workflow Language• XML based
• Hierarchy of processes• Web of resources
• PDL agnostic• PDF• PPML• Etc.
September 11, 2002 Integrating JDF and PPML
Page 9
HP DigitalPublishin
gSolutions
Steve Hiebert
basic structure of JDFJDF
JDF JDF JDF
Resource ResourceResource
ResourceLinks
ResourceLinks
ResourceLinks
September 11, 2002 Integrating JDF and PPML
Page 10
HP DigitalPublishin
gSolutions
Steve Hiebert
choosing 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
September 11, 2002 Integrating JDF and PPML
Page 11
HP DigitalPublishin
gSolutions
Steve Hiebert
IDPrinting• 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
September 11, 2002 Integrating JDF and PPML
Page 12
HP DigitalPublishin
gSolutions
Steve Hiebert
IDPrinting• Other Input Resources
• ColorantControl• Component (Cover, Input, Proof)• ExposedMedia• FontPolicy• InterpretingParams• RenderingParams• ScreeningParams• TransferFunctionControl
September 11, 2002 Integrating JDF and PPML
Page 13
HP DigitalPublishin
gSolutions
Steve Hiebert
• attributes-natural-lang
• ipp-attribute-fidelity• job-priority• output-bin• page-delivery• print-quality• sheet-collate
• AttributesNaturalLang
• IDPAttributeFidelity• IPPJobPriority• OutputBin• PageDelivery• PrintQuality• SheetCollate
IDPrintingParamsIPP
comparing IPP to IDPrintingParams
September 11, 2002 Integrating JDF and PPML
Page 14
HP DigitalPublishin
gSolutions
Steve Hiebert
sub-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
September 11, 2002 Integrating JDF and PPML
Page 15
HP DigitalPublishin
gSolutions
Steve Hiebert
but …•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.
September 11, 2002 Integrating JDF and PPML
Page 16
HP DigitalPublishin
gSolutions
Steve Hiebert
JDF 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
September 11, 2002 Integrating JDF and PPML
Page 17
HP DigitalPublishin
gSolutions
Steve Hiebert
A 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
September 11, 2002 Integrating JDF and PPML
Page 18
HP DigitalPublishin
gSolutions
Steve Hiebert
processes to model a digital print workflow – mix and match
• LayoutPreparation
• Imposition• Interpreting• Rendering• Screening
• DigitalPrinting• Stitching• Folding• Trimming• HoleMaking
September 11, 2002 Integrating JDF and PPML
Page 19
HP DigitalPublishin
gSolutions
Steve Hiebert
JDF 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.
September 11, 2002 Integrating JDF and PPML
Page 20
HP DigitalPublishin
gSolutions
Steve Hiebert
A JDF Combined Process NodeJDF
(Interpreting, Rendering, DigitalPrinting
Resource Resource
ResourceLinks
(Interpreting)
Resource Pool
Resource Link Pool
ResourceLinks
(Rendering)
ResourceLinks
(DigitalPrinting)
Resource
September 11, 2002 Integrating JDF and PPML
Page 21
HP DigitalPublishin
gSolutions
Steve Hiebert
Combined process example
<JDF Type = "Combined" Types = "DigitalPrinting Gathering Stitching" ID = "J1"> <ResourceLinkPool>
<!-- digital printing parameters --> <DigitalPrintingParamsLink Usage="Input" CombinedProcessIndex="0"
rRef="L1"/> <!-- gathering parameters --> <GatheringParamsLink Usage="Input" CombinedProcessIndex="1"
rRef="L4"/> <!-- Stitching parameters --> <StitchingParamsLink Usage="Input" CombinedProcessIndex="2" rRef="L6"/> <!-- input sheets --> <MediaLink Usage="Input" CombinedProcessIndex="0" rRef="L2"/> <!-- stitched output components --> <ComponentLink Usage="Output" CombinedProcessIndex="2" rRef="L7"/>
</ResourceLinkPool> <ResourcePool> … </ResourcePool></JDF>
September 11, 2002 Integrating JDF and PPML
Page 22
HP DigitalPublishin
gSolutions
Steve Hiebert
modifying resources at runtime• Traditional challenges• Challenges added by Variable Data Printing (VDP)• Traditional JDF
• Partitioning• Part
• Features added to JDF for VDP• Resource updates
September 11, 2002 Integrating JDF and PPML
Page 23
HP DigitalPublishin
gSolutions
Steve Hiebert
traditional 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
September 11, 2002 Integrating JDF and PPML
Page 24
HP DigitalPublishin
gSolutions
Steve Hiebert
variable data printing challenges• Database driven
• Text• Images• Media!• Etc.
• Streams, in particular transactional processing• A job without end
September 11, 2002 Integrating JDF and PPML
Page 25
HP DigitalPublishin
gSolutions
Steve Hiebert
varying 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
September 11, 2002 Integrating JDF and PPML
Page 26
HP DigitalPublishin
gSolutions
Steve Hiebert
possible 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
September 11, 2002 Integrating JDF and PPML
Page 27
HP DigitalPublishin
gSolutions
Steve Hiebert
partitioning 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.
September 11, 2002 Integrating JDF and PPML
Page 28
HP DigitalPublishin
gSolutions
Steve Hiebert
a partitioned RunList
<RunList ID="Link0003" Class="Parameter" Status="Available" PartIDKeys="Run">
<RunList Run="1" Pages="0~-1"><LayoutElement>
<FileSpec URL="File://File1.pdf"/></LayoutElement>
</RunList><RunList Run="2" Pages="0~-1">
<LayoutElement><FileSpec URL="File://File2.pdf"/>
</LayoutElement></RunList>
</RunList>
September 11, 2002 Integrating JDF and PPML
Page 29
HP DigitalPublishin
gSolutions
Steve Hiebert
referencing a partitioned RunList<ResourceLinkPool> <RunListLink rRef="Link003" Usage="Input"> <Part Run="1"/> </RunListLink> <RunListLink rRef="Link003" Usage="Input"> <Part Run="2"/> </RunListLink></ResourceLinkPool>
Explicit references to partitions
<ResourceLinkPool> <RunListLink rRef="Link003" Usage="Input“/></ResourceLinkPool>
Implicit reference to partitions
September 11, 2002 Integrating JDF and PPML
Page 30
HP DigitalPublishin
gSolutions
Steve Hiebert
varying 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
September 11, 2002 Integrating JDF and PPML
Page 31
HP DigitalPublishin
gSolutions
Steve Hiebert
resource 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
September 11, 2002 Integrating JDF and PPML
Page 32
HP DigitalPublishin
gSolutions
Steve Hiebert
a resource with updates
<DigitalPrintingParams ID="InitialDigitalPrintingParams"
Class="Parameter" Status="Available" Collate="None">
<DigitalPrintingParamsUpdate UpdateID="CollateEnabled" Collate="Sheet"/>
<DigitalPrintingParamsUpdate UpdateID="CollateDisabled" Collate="None"/>
</DigitalPrintingParams>
Note: all IDs must be unique
September 11, 2002 Integrating JDF and PPML
Page 33
HP DigitalPublishin
gSolutions
Steve Hiebert
activating 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
September 11, 2002 Integrating JDF and PPML
Page 34
HP DigitalPublishin
gSolutions
Steve Hiebert
activating 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
September 11, 2002 Integrating JDF and PPML
Page 35
HP DigitalPublishin
gSolutions
Steve Hiebert
resource update before
<DOCUMENT ...><TICKET_REF ExtIDRef="Media_CoverStock"/><PAGE ...>
<MARK...>...</PAGE><TICKET_REF ExtIDRef="Media_White"/><PAGE ...>...</PAGE><PAGE ...>...</PAGE><PAGE ...>...</PAGE><PAGE ...>...</PAGE><TICKET_REF ExtIDRef="Media_CoverStock"/><PAGE ...>
<MARK...> ...</PAGE>
</DOCUMENT>
September 11, 2002 Integrating JDF and PPML
Page 36
HP DigitalPublishin
gSolutions
Steve Hiebert
resource update within
<DOCUMENT ...><TICKET_REF ExtIDRef="Media_White"/><PAGE ...>
<TICKET_REF ExtIDRef="Media_CoverStock"/><MARK...>...
</PAGE><PAGE ...>...</PAGE><PAGE ...>...</PAGE><PAGE ...>...</PAGE><PAGE ...>...</PAGE><PAGE ...>
<TICKET_REF ExtIDRef="Media_CoverStock"/><MARK...> ...
</PAGE></DOCUMENT>
September 11, 2002 Integrating JDF and PPML
Page 37
HP DigitalPublishin
gSolutions
Steve Hiebert
PPML TICKET• May contain or refer to the JDF job ticket
• INTERNAL_DATA• EXTERNAL_DATA
• Format attribute• E.g., application/vnd.cip4-jdf+xml
– Not yet registered with the IANA– +xml described in IETF RFC 3023
– http://www.rfc-editor.org/rfc/rfc3023.txt
September 11, 2002 Integrating JDF and PPML
Page 38
HP DigitalPublishin
gSolutions
Steve Hiebert
job ticket embedded in PPML
<PPML><TICKET Format="application/vnd.cip4-jdf+xml">
<INTERNAL_DATAEncoding="text/xml"
xmlns:jdf="http://www.CIP4.org/JDFSchema_1"><jdf:JDF Type="Combined" ... > ...</jdf:JDF>
</INTERNAL_DATA></TICKET>...
</PPML>
September 11, 2002 Integrating JDF and PPML
Page 39
HP DigitalPublishin
gSolutions
Steve Hiebert
job ticket referenced from PPML
<PPML><TICKET Format="application/vnd.cip4-jdf+xml">
<EXTERNAL_DATA Src="MyTicket.jdf"/></TICKET>
</PPML>
September 11, 2002 Integrating JDF and PPML
Page 40
HP DigitalPublishin
gSolutions
Steve Hiebert
for further reading
• JDF 1.1a Specification• http://www.cip4.org/documents/jdf_specifications/index.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/