Question

starting with InDesign CS 5, there is a new format, called IDML, that defines a document to be rendered by InDesign. I'm looking for a way to view this format without opening InDesign (which is damn too heavy). The optimum solution would be an applet/a flash library/something that can render content in a web page (in fact, even a generated image could be an interesting starting point)

I know there is a (paying) Java library for read/write this format Can it be extended to develop a viewer ?

Was it helpful?

Solution

The IDMLlib is able to extract any information inside the IDML. You are not limited in any way to transform this information into something else. For example you could use java2d to render a spread from the IDML or you could use a PDF library to create a PDF from the IDML document. To answer your question: Yes, the IDMLlib provides the foundation to develop a viewer for IDML.

Best,

Andreas

p.s. The IDML format is available since CS4

edit:

iText would be one PDF library another one is www.pdflib.com which is an extremely fast library to create any kind of PDF but is also a commercial one. From a "what is possible" point of view, the pdflib is able to render a lot of stuff without much hassle but what will be very hard to do is stuff like soft shadows, image blendings. You will also need additional software to convert EPS to something (PDF maybe) that the pdflib can work with, because EPS files are not supported by the pdflib. Fonts could also be a showstopper, if your idml document uses Mac fonts (Font suitcases, .dfont). All other fonts are supported very well (Truetype Fonts, OpenType Fonts, PostscriptFonts). I don´t think it will be possible to create a viewer that can render every document 100% accurate but it will be possible to create a viewer that can render a lot of documents very accurate. But as always mileage may vary, best would be to get a eval from both libs and give it a try.

OTHER TIPS

You want to go from IDML to Web?

I am in a similar situation myself. I think InDesign Server has the functionality we want, but it seems prohibitively expensive. If your IDML is consistent you can write your own process. This what I am currently doing.

I am also doing the same as Mikhail. I keep the IDML documents in a Jackrabbit repository, so every single XML is exposed thru a Java REST API.

Then the IDML is loaded in a FLEX application, which does the actual rendering. I am also using a heavily modified version of the excellent TinyTLF library, written by Paul Taylor, in which I implemented most of the IDML text markup as a separate IDML renderer. Maybe some day I will rewrite it to HTML5/Javascript.

I was stuck in the same problem for a long time, and I figured out that this is not possible very difficult. Using IDML you cannot easily render the document as you can render it with the source INDD file.

This is because the IDML file is a view and not a model, it does not contain enough information to be rendered correctly.

The problem where I got blocked was when IDML file had text + graphics. It was not possible to render it correctly, as all TextFrames pointed to the same story, and there is no way in IDML to figure out how much text fits into one text frame. So, you basically cannot figure out where to place the image, i.e. after how much text.

As for IDMLLib, I tried an evaluation product and these people have just provided something like a SDK with which you can extract all info from IDML. This info is not enough!!!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top