InDesign

An InDesign document is a page layout: frames placed on pages, text flowing from frame to frame across them, and master pages whose items every page inherits. BDF reads the IDML package InDesign exports (File → Export → InDesign Markup) and lays the text out itself, with the fonts it then embeds, rather than rasterizing pages or going through a PDF export. Each page of the document becomes a page in BDF; the viewer turns them as a book, in the reading direction of the binding.

Try it

Drop a file on the viewer, or try a sample: basic.idml (three pages of shapes, images and a story threaded through them), vertical.idml (a right-to-left bound document in Japanese vertical text), or a magazine page InDesign exported, interview.idml.

InDesign Markup (.idml)

converter/idml reads IDML, the XML package InDesign exports and opens again: the design map, the spreads with their pages and items, the master spreads, the stories, and the resources (swatches, stroke styles, paragraph and character styles). The native .indd format is binary and undocumented and is not read: export the document as IDML first.

What's read:

Not drawn, with a warning: tables and footnotes in text, objects anchored in text, placed EPS, PDF and PICT files, arrowheads, blend modes other than normal, striped strokes (drawn solid), text overset beyond the last frame of a chain. Fonts the document names are looked for on the machine (and under -font-dir); a font that is not found is replaced by a metric-compatible or generic one, and the layout changes accordingly.

The converter was checked against documents InDesign itself exported (CS5.5 to InDesign 2020), from the regression tests of SimpleIDML (BSD 3-clause), kept in converter/idml/testdata/simpleidml/; the viewer samples above include one of them.

converter/idml has no -param options. -pages selects pages, and the general font flags -font-dir, -fonts, -no-subset, -no-woff2, -no-system-fonts and -ignore-fstype apply as they do to PowerPoint.

See design.md §3.32 for the internals.