JusCMS IDMLTools

JusCMS,MPDL

=IDML Purpose= A requirement of the JusCMS-Project is to generate the year reports in PubMan. The year reports are now done with InDesign (in Hamburg, in Munich the job is given to a company which costs every year). So a format conform to InDesign is needed. InDesign can parse XML, so in this case transformation of the eSciDoc-XML and also correct understanding of the citation style is needed.

Possible scenarios for code-based working with InDesign are:
 * InDesign Markup Language (IDML), dynamic generation/manipulation of InDesign-File outside of InDesign(see IDML Cookbook);
 * XML-Import with VBScript oder JavaScript (see ScrptingGuide_JS Chapter Adding XML elements to a layout, page 134)
 * XSLT mit CSS, a JS- or VB-script for this task is needed.

For more information see Automated publishing with XML, IDML, and scripting) =IDML= From the IDML-Specification: "IDML is an XML-based format that is capable of fully describing an InDesign document, and is the interchange format for Adobe InDesign CS4 documents. By using an XML representation of text and graphic frames, stories, and other aspects of an InDesign layout, IDML gives you a way to create and modify InDesign documents using tools outside the InDesign application.

Like its precursor INX, IDML is a Document Object Model (DOM) representation of InDesign documents, and is based on the InDesign scripting object model. INX stands for “InDesign Interchange” and was introduced in InDesign CS2 to support the ability to save documents for use in a previous version. INX will continue to be used for backward compatibility for InDesign versions prior to InDesign CS4; IDML will be used for backward compatibility between InDesign CS4 and future versions.

It was quite difficult to write or edit the INX format, as it was designed to be written and consumed by InDesign alone. IDML addresses requests by third party developers and system integrators to make INX more readable and to make it easier to change and assemble InDesign documents using XML tools. By using IDML, you can realize gains in performance, convenience, and flexibility."

=Uses of IDML= From the IDML-Specification Page 13:

"IDML provides a way for InDesign layouts to interoperate with XML based formats and technologies. Documents can be created and manipulated in IDML format and can then be opened and interpreted using InDesign. We’ve designed IDML to make it a key part of automated workflows. Using IDML, you can:
 * Generate or modify IDML documents or document elements using data from databases or other data sources (programmatic assembly).
 * Reuse parts of IDML documents, or break a document into components that can be used in a development environment (programmatic disassembly).
 * Transform document elements using XSLT.
 * Find data in InDesign documents using XPath or XQuery.
 * Use source control to manage creative content, or to compare two versions of a design.

IDML is intended for consumption by InDesign-family applications, including InDesign, InCopy, and InDesign Server. IDML is not intended as an interchange format for use with applications outside the InDesign family of products, and does not attempt to write or structure InDesign content in a manner that is compatible with other XML layout formats (such as Mars, XSL-FO, or SVG)."

=IDML Tools= IDMLTools contains Java and XSLT-based tools, APIs, and samples for working with IDML. This support is implemented in several Java classes. The package can be used from the command line or within Java programs. IDMLTools are available as part of the Adobe InDesign CS4 Products SDK.

Possible Workflows with IDML:

Creation of IDML-file from scratch

 * Package the file folders as *.idml (a kind of ZIP-File) with the class "com.adobe.imdl.Package" from the sdktools/devtools.
 * Validate it with the class "com.adobe.imdl.Validator" from the sdktools/devtools. There is a schema for the validation. Problem: no propper error handling. The errors have to be found in the 500-page documentation. For error handling deeper understanding of IDML is needed.
 * Give the *.idml-File to Print-Designer for further processing in InDesign.

Manipulation of existing IDML-file

 * Print-Designer makes an InDesign-File for the reports and export it as IDML-File.
 * The IDML-File is manipulated (e.g. adding XML-data with formats) and given back to the designer.

Many examples for this workflow in the IDMLTools examples.

=License= Adobe® InDesign® CS4 Products Software Development Kit, End User License Agreement: "The InDesign SDK can not be use or integrate with any Open Source Software or otherwise take any action that could require disclosure, distribution, or licensing of all or any part of the SDKSDKSDK in source code form, for the purpose of making derivative works, or at no charge."

IDML Tools is part of the SDK. In this case we can only create/manipulate IDML-files outside of PubMan.

InDesign as TestVersion for 30 days.

JusCMS Func Spec Publication List for Activity Report