Hi guys, I'm java dev and I'm trying to work with IDML file format and look for a java lib for that, can somebody help me with that? So... in a final result I want read all possible meta data from inDesign doc (.indd). Thanks.
IDML is an open format, it's basically a zip archive of a bunch of XML files that contain all the necessary data to create the InDesign document. To start you can read the IDML specification and identify the files that contain the information that you need, next part would be easy w.r.t to unzipping and reading/querying the files that are of interest to you.
Thanks a lot! Will read
Thanks a lot. Will read
There used to be the commercial product from idmllib.com, but I don't know whether that is still maintained, when I tried right now the server was not responding. As I understand it it was meant to produce entire IDML files rather than just parsing them.
On the other hand, what do you mean with "all possible meta data"?
While the InDesign document format (.indd) is proprietary, it has an embedded XMP section for metadata.
Try XMP Toolkit for Java, maybe it is sufficient for your task? Also please report back any experiences …
I need content from designed doc so will investigate "XMP section for metadata". Cool and thanks, and of course will share my experience.
When you have InDesign running, use File >> File Info … to peek at the XMP meta data as it is, especially the Raw Data section of the dialog. At best, XMP Toolkit will give you access to that.
If you also need contents and formatting beyond the meta data, stick with IDML.
the owner of idmllib, FHCon GmbH, was merged to DAM United AG in 2017.
See "History" at: https://www.dam-united.com/dam-united/?lang=en
It seems that idmllib is no product anymore.
At least the server is not responding if you follow the links from there:
Hm. DAM United AG is also listed as Adobe Partner:
( ACP )
Yeap idmllib is not supprting, anyway IDML file doesn't contain image that I want to get from indesign.
So I have another one question, is it possible to receive (or how) image from indd file format? Maybe somehow via InDesign server API (if it exists).
don't know exactly what you are after.
FWIW: An IDML file could contain a placed image's data if the image was embedded before in the InDesign document where you exported an IDML file from.
( ACP )
Hi, as I can see there is only path to the image (on my local machine). I've unpacked IDML go to in the Spreads directory in the Spread_ue6.xml and see just a path under LinkResourceURI (file:/MyimageLocalPath) and there is no image binaries under IDML(
Sorry, as a final result I want to get all possible data from inDesign document like text, layers, positions, styles and of course images.
Anton, as Uwe mentioned, IDML will either contain the path to the linked files as you have already discovered or the base64 encoded(have not tested it) data for the embedded files. Rest all the other information that you want is easily accessible. XPaths will be your friend in this
Manan I see, but you have mentioned "the path to the linked files" it is just a path but not an image. In case if I want to import IDML in another workstation there won't be that image (because of another file system) is it? Thanks
That's the same as with the original .indd document.
Have a look at the "Package…" command which btw. includes an .idml export.
The standalone .idml export as you know it would be used in scenarios where external resources including images are stored on shared volumes, or eventually managed in a workflow system.
Thank you for your answer, will take a look at Package
Sorry Dirk, did not understand you at first time... so, I've used packaging for .indd and .idml formats, and looks like that .idml has image binaries only for "Embedded" type of images but not for "Linked".
BTW .indd contains image binaries for both "Embedded" and "Linked" types of images.
The images referenced by the original document can be distributed across a vast file system hierarchy, multiple volumes and so forth.
Packaging does not embed the images, but it collects the images into the "Links" sub-folder of the package folder. You are supposed to transfer that entire package folder to your other workstation.
Regarding the low resolution image previews contained in .indd files - InDesign server has a mode to omit those e.g. for speed or file size reasons.
if an InDesign document contains binaries for linked graphics or images the binaries are for the screen representation only: In low resolution. As I already said: You have to embed a placed image or a graphic in an InDesign document so that InDesign is able to include the binary ( not only a low res screen representation ) with an IDML file.
( ACP )
Hi Uwe, got it. Thanks a lot for explaining!