PDF: report visible unembedded fonts in PDF/X-4 (#909)

Track text state through graphics saves and drawn forms; exempt invisible text. Report font names and pages in export warnings and validation without embedding or outlining placed fonts.
This commit is contained in:
KnottyDyes
2026-10-22 10:31:21 -06:00
parent e44662305f
commit bba31c17b6
9 changed files with 489 additions and 8 deletions
+14 -1
View File
@@ -1,6 +1,6 @@
# Where DesignCraft falls short of InDesign
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-17 · **Change:** minor (gap 6 shrunk: Type › Reload Fonts reads fonts installed, edited or removed while running (#328); gap 3: Package links are relative, #340; gap 27 closed: the loaded text cursor threads into a frame inside a group (#1075); .indd and .indt open through indd-utils; gap 0 shrunk: text threads by hand; threading gaps added; Optical kerning from outlines (#181); gap 6: macOS lists fonts that font services and managers activate; shared print spooler; image clipping paths from IDML; Tabs panel listed as present (#343); book chapter update safety; gap 16: Based on Parent leftovers; bounded control click/drag input; swatches on placed greyscale and bitmap images) · **Target:** Adobe InDesign 2026 (21.6)
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-19 · **Change:** minor (gap 28 added: placed-PDF font repair remains after visible unembedded font detection, #909; gap 6 shrunk: Type › Reload Fonts reads fonts installed, edited or removed while running (#328); gap 3: Package links are relative, #340; gap 27 closed: the loaded text cursor threads into a frame inside a group (#1075); .indd and .indt open through indd-utils; gap 0 shrunk: text threads by hand; threading gaps added; Optical kerning from outlines (#181); gap 6: macOS lists fonts that font services and managers activate; shared print spooler; image clipping paths from IDML; Tabs panel listed as present (#343); book chapter update safety; gap 16: Based on Parent leftovers; bounded control click/drag input; swatches on placed greyscale and bitmap images) · **Target:** Adobe InDesign 2026 (21.6)
Every known shortfall against InDesign 2026, one entry each, ranked by how much it stops an
InDesign professional from doing real work. This is the work list: agents pick from the top.
@@ -123,6 +123,18 @@ Kind: **F** feature · **U** UI/UX · **T** typography · **FF** file format ·
spot, marks and bleed, the options dialog with remembered settings (#196).
- **Estimate:** 40–70 h. **Doc:** [file-format-parity.md](file-format-parity.md)
### 28. Placed-PDF font repair for PDF/X-4 (FF)
- **Missing:** embedding, substitution or outlining of unembedded fonts in placed PDFs; export
does not automatically embed or outline them.
- **Have:** PDF/X-4 export warnings and `validate-pdf` report unembedded fonts drawing visible
text, including inside placed PDF forms, with font names and pages (#909). Invisible text
(render mode 3) is exempt from this font-embedding check. A document-wide operation limit and a
form-nesting depth limit report incomplete font checks rather than traversing pathological
nesting.
- **Impact:** detection now ships, but a placed PDF with visible unembedded fonts still needs
font repair before it can meet PDF/X-4 requirements.
- **Doc:** [file-format-parity.md](file-format-parity.md)
### 10. Printing (H, F)
- **Missing:** PostScript, a printer-driver options UI, separations to device, print presets, or trapping.
- **Have:** `file.print` exports selected pages/spreads with marks and bleed, then submits through
@@ -249,6 +261,7 @@ Cue. These are excluded from every percentage.
| Date | Change | Summary |
|---|---|---|
| 2026-10-19 | minor | Gap 28 added for remaining placed-PDF font embedding, substitution or outlining; visible unembedded font detection now ships in PDF/X-4 export and `validate-pdf`, with invisible text exempt and operation- or depth-limited checks reported incomplete (#909) |
| 2026-10-16 | minor | Gap 27 closed: the loaded text cursor threads into a text frame inside a group (#1075) |
| 2026-10-16 | trivial | Gap 13 shrunk: Greek hyphenates, so five languages do (#1077) |
| 2026-10-13 | minor | Gap 16: Parent Options dialog and overrides of base items on a parent spread |