410 likes | 668 Views
Integrating JDF and PPML. Marrying a Job Ticket to a Page Description Language. Steve Hiebert Software Design Engineer Hewlett-Packard Company. motivation.
E N D
Integrating JDF and PPML Marrying a Job Ticket to a Page Description Language Steve HiebertSoftware Design EngineerHewlett-Packard Company Integrating JDF and PPML
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. Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
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. Integrating JDF and PPML
basic structure of PPML Integrating JDF and PPML
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 Integrating JDF and PPML
JDF • Job Ticketing and Workflow Language • XML based • Hierarchy of processes • Web of resources • PDL agnostic • PDF • PPML • Etc. Integrating JDF and PPML
basic structure of JDF Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
IDPrinting • Other Input Resources • ColorantControl • Component (Cover, Input, Proof) • ExposedMedia • FontPolicy • InterpretingParams • RenderingParams • ScreeningParams • TransferFunctionControl Integrating JDF and PPML
attributes-natural-lang ipp-attribute-fidelity job-priority output-bin page-delivery print-quality sheet-collate AttributesNaturalLang IDPAttributeFidelity IPPJobPriority OutputBin PageDelivery PrintQuality SheetCollate comparing IPP to IDPrintingParams IPP IDPrintingParams Integrating JDF and PPML
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 Integrating JDF and PPML
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. Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
LayoutPreparation Imposition Interpreting Rendering Screening DigitalPrinting Stitching Folding Trimming HoleMaking processes to model a digital print workflow – mix and match Integrating JDF and PPML
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. Integrating JDF and PPML
A JDF Combined Process Node Integrating JDF and PPML
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> Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
variable data printing challenges • Database driven • Text • Images • Media! • Etc. • Streams, in particular transactional processing • A job without end Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
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. Integrating JDF and PPML
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> Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
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 Integrating JDF and PPML
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> Integrating JDF and PPML
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> Integrating JDF and PPML
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 Integrating JDF and PPML
job ticket embedded in PPML • <PPML> • <TICKET Format="application/vnd.cip4-jdf+xml"> • <INTERNAL_DATA Encoding="text/xml" xmlns:jdf="http://www.CIP4.org/JDFSchema_1"> • <jdf:JDF Type="Combined" ... > • ... • </jdf:JDF> • </INTERNAL_DATA> • </TICKET> • ... • </PPML> Integrating JDF and PPML
job ticket referenced from PPML • <PPML> • <TICKET Format="application/vnd.cip4-jdf+xml"> • <EXTERNAL_DATA Src="MyTicket.jdf"/> • </TICKET> • </PPML> Integrating JDF and PPML
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/ Integrating JDF and PPML