Progress docs per craftrules standards/progress-docs.md: target-app parity, gaps, roadmap with alpha gate, readiness by audience (full / mainstream / essentials) with Opus 5.5 hours, and feature, format, hardware, UI and localization parity docs. Co-Authored-By: Claude Opus 5.5 <[email protected]>
7.6 KiB
File format parity
Last reviewed: 2026-10-10 · Last updated: 2026-10-10 · Change: major (first version: every format InDesign 2026 declares, measured against the code) · Target: Adobe InDesign 2026 (21.6)
Every format InDesign 2026 reads or writes, with DesignCraft's support, fidelity and tests. The
InDesign list comes from its bundle's Info.plist (CFBundleDocumentTypes,
UTExportedTypeDeclarations), its import/export filter folder names and its File menus; ours from
the open/place/export filters in apps/designcraft/src/main.rs and the file.* commands.
Overall numbers: target-app-parity.md; open problems: gaps.md.
Dimension score: ~40% ready (estimated), 150–250 h + 20–60 h for INDD integration. The
single largest gap is that .indd can't be opened.
Read/Write: ✓ supported · ~ partial · ✗ missing · — InDesign doesn't either. Weight: what share of an InDesign professional's file traffic the format carries (used for the score below).
Documents and interchange
| Format | Ext | InDesign | DesignCraft read | DesignCraft write | Fidelity / tests | Weight |
|---|---|---|---|---|---|---|
| InDesign document | .indd |
read/write (native) | ✗ (#21; converters proposed in #98, #114) | ✗ | — | 30% |
| InDesign template | .indt |
read/write | ✗ | ✗ | — | 2% |
| InDesign Markup | .idml |
read/write | ✓ | ✓ | Synthetic fixtures in crates/idml/src/tests.rs (49 tests); exported files verified by opening in InDesign 2026 by hand; indd-utils' 98-document run imports 811 spreads / 2,866 stories / 5,812 items. Open: #193, #338, #339, #340, #211. No real-file corpus test |
20% |
| DesignCraft native | .designcraft |
— | ✓ | ✓ | zip + JSON, versioned; round-trip tests | — |
| InDesign book | .indb |
read/write | ✗ (own .dcbook) |
✗ | Books are shallow (see gaps.md) | 2% |
| InDesign library | .indl, .inlx |
read/write | ✗ (own .dclib) |
✗ | 1% | |
| Snippet | .idms |
read/write | ✗ (own snippets) | ✗ | 1% | |
| InCopy story / assignment | .icml, .icma, .incx, .inca |
read/write | ✗ | ✗ | InCopy workflow out of scope; ICML story import would still help | 1% |
| InDesign Interchange (legacy) | .inx |
read | ✗ | — | <1% | |
| PageMaker | .pmd, .p65, .t65, .pmt |
read | ✗ | — | <1% | |
| QuarkXPress | .qxd, .qxt |
read (old versions) | ✗ (#73) | — | <1% |
Output
| Format | Ext | InDesign | DesignCraft | Fidelity / tests | Weight |
|---|---|---|---|---|---|
| PDF (print) | .pdf |
✓ all presets, PDF/X-1a/3/4, PDF/A, PDF/UA | ✓ krilla: real text with subset fonts, DeviceCMYK/RGB, spot Separations, bleed/slug, marks, spreads, compression options, remembered settings (#196); PDF/X-4 with output intent and a validator (#223, #200); PDF/A-2b; tagged PDF | 53 tests in crates/pdf; no PDF/X-1a or X-3 (needs flattening to PDF 1.3/1.4); no presets / .joboptions; no external validator (veraPDF / callas) in CI |
18% |
| PDF (interactive) | .pdf |
✓ | ✓ links, bookmarks, buttons, AcroForm fields, page transitions, object states | 2% | |
| JPEG / PNG | .jpg, .png |
✓ | PNG from the UI; JPEG from the CLI only | no resolution / colour space options dialog for JPEG | 3% |
| EPUB reflowable | .epub |
✓ | ✓ stories in article order, CSS from styles, images, nav | 2% | |
| EPUB fixed layout | .epub |
✓ (live HTML/CSS) | ~ page images with text kept for search | not live text | 1% |
| HTML | .html |
✓ | ~ one self-contained page (#314) | 1% | |
| HTML5 ZIP / Publish Online | ✓ | ✗ (Publish Online out of scope) | <1% | ||
| SVG export | .svg |
✓ (via plug-in) | ✗ | <1% | |
| EPS export | .eps |
✓ | ✗ | <1% | |
| Text Only / RTF / Tagged Text | .txt, .rtf |
✓ | ✓ (file.exportText txt, rtf, tagged) |
1% | |
| XML | .xml |
✓ | ✓ export and import, DTD validate | depth unmeasured | 1% |
| Print / PostScript | ✓ printers, PPDs, separations | ~ PDF to lpr (no Windows, no PostScript) |
3% | ||
| Package | folder | ✓ fonts, links, IDML, PDF, report | ✓ (#340: IDML inside links to absolute paths) | 2% |
Placed and imported content
| Format | Ext | InDesign | DesignCraft | Notes | Weight |
|---|---|---|---|---|---|
| PDF / AI (PDF-compatible) | .pdf, .ai |
✓ page boxes, layers, pages | ✓ rendered with hayro, embedded as vector in PDF export, crop to page boxes | layer visibility depth; editable vectors not offered (#227) | 3% |
| JPEG, PNG, GIF, BMP, WebP | ✓ | ✓ | CMYK JPEG/TIFF keep inks in PDF (#35) | 2% | |
| TIFF | .tif |
✓ incl. CMYK, alpha, paths | ✓ incl. CMYK | clipping paths from 8BIM resources unverified | 1% |
| PSD | .psd |
✓ layers, comps, alpha, paths | ~ composite + Object Layer Options | layer comps partial | 1% |
| EPS | .eps |
✓ (PostScript) | ~ preview only (no interpreter) | <1% | |
| SVG | .svg |
✓ | ✓ (usvg) | <1% | |
| HEIC | .heic |
✓ | ✗ | <1% | |
| Word | .docx |
✓ styles, footnotes, tables, track changes, options | ✓ styles by name, footnotes, tables, tabs, breaks, moved text (#257), style mapping and conflicts | .doc not supported (InDesign reads it) |
2% |
| RTF | .rtf |
✓ | ✓ | <1% | |
| Excel | .xlsx, .xls |
✓ | ~ .xlsx first sheet's used range |
no sheet/range options; .xls ✗ |
<1% |
| Plain text, Markdown | .txt, .md |
✓ (txt) | ✓ | <1% | |
| InDesign Tagged Text | .txt |
✓ | ✓ import and export | <1% | |
| CSV / TSV (Data Merge) | ✓ | ✓ (+ Excel) | <1% | ||
| Audio / video | .mp4, .mp3, … |
✓ placeholders for EPUB/PDF | ~ placed as media objects | no in-app playback | <1% |
Resources and settings
| Format | Ext | InDesign | DesignCraft |
|---|---|---|---|
| Adobe Swatch Exchange | .ase |
read/write | ✓ load and save |
| Colour books | .acb |
read (17 libraries ship) | ✗ (licensed libraries; Pantone etc. out of scope, own libraries possible) |
| ICC profiles | .icc, .icm |
read | ✓ |
| Colour settings | .csf |
read/write | ✗ |
| PDF presets | .joboptions, .pdfs |
read/write | ✗ |
| Print / flattener / document presets | .prst, .flst, .dcst |
read/write | ✗ |
| Preflight profiles | .idpp |
read/write | ✗ (own profiles in the document) |
| Keyboard shortcut sets | .indk |
read/write | ✗ (own JSON) |
| User dictionary | .udc |
read/write | ✗ (own, in the document and prefs) |
| Fonts | OTF, TTF, TTC, variable | ✓ | ✓ (Type 1 retired by both) |
Score
Weighted by the Weight column (documents, output and placed tables; resources unweighted), counting ✓ = 1, ~ = 0.5, and IDML at 0.6 until a real-file corpus proves it: ~45% present. Taking fidelity into account (no INDD, IDML unproven, PDF/X-1a and presets missing), ~40% ready for real work (estimated). INDD alone moves this dimension by up to 30 points.
Remaining effort
| Work | Opus 5.5 h |
|---|---|
| INDD import via a clean-room converter (owner decision, #114) | 20–60 |
| IDML real-file corpus, metric, fixes (#193, #338, #339, #340) | 60–100 |
PDF/X-1a and X-3 (transparency flattener), PDF presets and .joboptions, external validator |
40–70 |
| Print path (Windows, PostScript level 3 output or system print APIs) | 25–45 |
| ICML story import, IDMS snippets, INDT templates (once INDD reads) | 15–25 |
| HTML / fixed-layout EPUB with live text | 20–35 |
| JPEG export dialog, SVG export, EPS export | 10–20 |
| Total | 190–355 (150–250 excluding INDD and PostScript output) |
Revision history
| Date | Change | Summary |
|---|---|---|
| 2026-10-10 | major | Created from InDesign 2026's declared document types and filters, plan/indesign/08-file-formats.md and the code |