The parity and roadmap docs were last refreshed before a batch of fixes merged, so they still described closed issues as open problems. - #774 (encrypted output rejected by Acrobat, fixed by #836): gap 1 removed from gaps.md; its remaining interop-suite work moved to gap 12. Gap numbers are kept so existing "gap N" references stay valid. - #756 (Windows printing, #847): Printers row, Print area and roadmap rank 1 now name web printing as the remaining gap. - #740 column select (#765), #759 1:1 touchpad scrolling (#868), #810 Shift-Cmd-G (#835), #825 (#822). - #844 multi-object move (#907): marked partial, same page only. - #799, #800, #807, #809, #811, #815-#819, #821 (incl. the #816 panic): gap 6 and the area tables list them as fixed. Scores, readiness percentages and the stage are not re-judged; only the rank-0 estimate drops by gap 1's 8-15 h (40-70 -> 32-55). Co-authored-by: Brandon Thomas <[email protected]>
19 KiB
Where PdfCraft falls short of Acrobat Pro
Last reviewed: 2026-10-10 · Last updated: 2026-10-11 · Change: patch (gap 2: hayro patch counts after the native-gradient backport) · Target: Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS) Last reviewed: 2026-10-10 · Last updated: 2026-10-11 · Change: minor (gap 1 closed by #836; fixed issues removed from gaps 3, 6 and 16) · Target: Adobe Acrobat Pro (Acrobat DC, continuous track 26.002.21931, macOS)
Every known shortfall, one entry each, ranked by what it costs users. This is the work list: agents
choose from the top unless the owner says otherwise, and prefer these over new P2/P3 checklist
features. The numbers behind it are in target-app-parity.md; the per-feature
detail is in parity/acrobat-features.toml (cargo xtask parity --partial lists what each partial
feature lacks).
No gap blocks the alpha gate; gap 8 holds the convert-and-share workflow's partial sub-cases and is the first beta item. Gap numbers are kept when a gap closes, so references elsewhere stay valid (gap 1, encrypted output Acrobat rejected, closed with #836).
Hours are Opus 5.5 agent wall-clock hours. "Doc" names the parity document the gap belongs to. When a gap closes, delete its entry, note it in the ROADMAP.md progress log and update the numbers.
Summary
| # | Gap | Kind | Hours | Doc |
|---|---|---|---|---|
| 2 | Rendering is borrowed and its fidelity unmeasured | feature, spec | 110–190 | pdf-spec-parity.md |
| 3 | Editing existing text is fragile on real files | feature | 100–180 | target-app-parity.md |
| 4 | No printing on the web | feature, platform | 15–30 | hardware-parity.md |
| 5 | Chinese UI shows missing-glyph boxes in releases | localization | 6–12 | localization-parity.md |
| 6 | Open-issue backlog of wrong results in shipped features | stability | 45–80 | this file |
| 7 | OCR reads only unaccented Latin | feature | 40–75 | file-format-parity.md |
| 8 | Office export weak, Office import absent | file format | 55–100 | file-format-parity.md |
| 9 | No Preflight; PDF/A partial; PDF/X and PDF/UA absent | standards | 65–115 | pdf-spec-parity.md |
| 10 | Signatures: no PKCS #11, timestamp servers or online revocation | feature, hardware | 40–70 | pdf-spec-parity.md |
| 11 | Accessibility: checker only, no tagging tools | feature | 40–70 | target-app-parity.md |
| 12 | No measured fidelity harness against Acrobat | quality | (in 2) | target-app-parity.md |
| 13 | Performance budgets and lazy loading of very large files | performance | 25–45 | this file |
| 14 | Arabic not mirrored; no Hindi, Indonesian, Korean, Vietnamese | localization | 30–50 | localization-parity.md |
| 15 | Forms: JavaScript object model, actions, submit, XFA depth | feature | 40–75 | pdf-spec-parity.md |
| 16 | UI precision gaps (multi-select move, rulers, accelerators, windows) | UI/UX | 30–60 | ui-parity.md |
| 17 | Certificate security and other protect gaps | feature, spec | 15–30 | pdf-spec-parity.md |
| 18 | Print production tools absent | feature | 25–45 | target-app-parity.md |
| 19 | Preferences mostly missing | UI/UX | 15–25 | ui-parity.md |
| 20 | Scanners, GPU page rendering, pen pressure, Read Out Loud | hardware | 25–50 | hardware-parity.md |
| 21 | Compare: no side-by-side view or filters | feature | 10–20 | target-app-parity.md |
| 22 | PDF 2.0 extras, linearization, Arlington validation | spec | 20–35 | pdf-spec-parity.md |
| 23 | Local AI provider (summarize, ask, alt text, redaction suggestions) | AI | 20–40 | target-app-parity.md |
| 24 | Checklist not diffed against Acrobat's own menus | measurement | 4–8 | target-app-parity.md |
The gaps
2. Rendering is borrowed and its fidelity unmeasured
- Missing: our own renderer (M2:
modelcrate, font engine, DisplayList devices, ADR-0004), or an owner decision to adopt another engine; and any measurement of rendering against Acrobat. - Evidence: pages are drawn by vendored
hayro0.7 with 23 local patches tohayro-interpret, 10 tohayro, 3 tohayro-jbig2and 13 tohayro-syntax(vendor/README.md);lopdfstill backs document inspection. All 7 rendering P0 features arepartial. User reports: TikZ pattern fills drawn wrong (#794), blurry text at 1080p/1440p (#730), fixed zoom sizes differ from Acrobat (#739). An outside author proposes his MIT/Apache renderer as the bridge (#841). - Impact: every page a user sees. Wrong glyphs, shadings or blend modes erode trust faster than any missing feature.
- Fix: first a fidelity harness (gap 12), then the renderer: own devices (150–250 h in the old plan) or an adopted engine plus our own font and text layers.
- Estimate: 110–190 h (includes the harness). Owner decision needed on #841 vs M2. Doc: pdf-spec-parity.md.
3. Editing existing text is fragile on real files
- Missing: robust in-place editing of text PdfCraft didn't write: subset fonts without the needed glyphs, CJK and right-to-left text, rotated text, lists, superscript/subscript, keeping structure tags, find and replace in edit mode; vector and object editing; arrange and align.
- Evidence:
edit.text-editis partial (font reused or Helvetica substituted);edit.rtl-cjk-editing,edit.rotated-text-editing,edit.keep-tags-on-edit,edit.vector-edit,edit.edit-object-toolare planned. Users: #766 (editing Arabic text), #844 (several elements now move together on one page, not across pages), #787 (move images between pages), #791. - Impact: "Edit PDF" is one of Acrobat Pro's top reasons to buy. Substituting Helvetica changes how a document looks.
- Estimate: 100–180 h (the longest feature pole, M7). Doc: target-app-parity.md.
4. No printing on the web
- Missing: browser printing.
- Evidence: the web build has no spooler: off Windows and unix,
spool::submitreports that printing to a printer isn't available and only the print-ready PDF can be saved.crates/print/README.md: "Not yet: the web spooler". - Impact: the web build cannot send a job to a printer; printing is a P0 workflow. Printing on Windows shipped with #756.
- Estimate: 15–30 h. Doc: hardware-parity.md.
5. Chinese UI shows missing-glyph boxes in releases
- Missing: a Simplified Chinese (
Hans) UI face in release builds and a working fallback. - Evidence: #826,
#688,
#728,
#758,
#689 (Flatpak).
AGENTS.md§1.1 bars Noto CJK (Source Han rebranded), so craft-fonts needs another openly licensed Hans face. - Impact: the second-largest language group sees a broken interface although the catalog is 97% translated.
- Estimate: 6–12 h (font sourcing in craft-fonts plus the fallback chain). Doc: localization-parity.md.
6. Open-issue backlog of wrong results in shipped features
- Missing: fixes for the ≈ 13 of ≈ 25 filed reports of features marked
shippedthat give wrong results still open, plus triage of ≈ 220 other open issues. - Evidence: 245 open issues on 2026-10-10. The first batch of
fix(...)reports was fixed by 2026-10-10 (#799, #800, #807, #809, #810, #811, #815, #816, #817, #818, #819, #821); the rest of the backlog is untriaged. - Impact: every one is a user who lost trust. Crash reports outrank feature work
(
AGENTS.md§4). - Estimate: 45–80 h (≈ 0.2–0.4 h per issue). Doc: this file.
7. OCR reads only unaccented Latin
- Missing: every other script and accented Latin; editable-text output; deskew, rotation, despeckle, background and camera clean-up; MRC compression; pluggable engines; OCR in the browser; scanner input.
- Evidence:
ocr.ocr-languagespartial ("the models read only the Latin alphabet without accents"); 19 of 26 OCR features planned; #744 (Dutch). Acrobat ships on-device recognition for dozens of languages. - Impact: scanned documents are a core Pro workflow outside English.
- Estimate: 40–75 h, partly blocked on openly licensed models. Doc: file-format-parity.md.
8. Office export weak, Office import absent
- Missing: Word export that keeps layout; Excel and PowerPoint export; creating PDFs from Office, HTML, web pages and PostScript; SVG/XML/EPS/PS/JPEG 2000 export.
- Evidence:
create.export-docxpartial; #773 (an invoice converted to Word loses its layout, gains table borders and duplicates pages);create.export-xlsx,create.export-pptx,create.from-office,create.from-htmlplanned. - Impact: "Export PDF" and "Create PDF" are two of Acrobat's most used tools.
- Gate: lossy or missing sub-cases of the convert-and-share workflow (partial, not blocking). First beta items: Create PDF from Office (LibreOffice sidecar, 10–20 h) and a Word export that keeps layout (20–35 h).
- Estimate: 55–100 h. Doc: file-format-parity.md.
9. No Preflight; PDF/A partial; PDF/X and PDF/UA absent
- Missing: Preflight (profiles, single checks and fixups, results tree, reports, droplets); PDF/A-1, PDF/A-4 and conformance levels a/u; PDF/X verify and convert; PDF/UA-1/2 verify; PDF/E, PDF/VT; output-intent choice; transparency flattening.
- Evidence: 12 Preflight features and 9 standards features planned;
optimize.pdfa-validate,optimize.pdfa-convertpartial (2b/3b structural rules; CMYK documents get no output intent). Acrobat ships hundreds of built-in Preflight profiles. - Impact: blocks print shops, archives and accessibility compliance work.
- Estimate: 65–115 h. Doc: pdf-spec-parity.md.
10. Signatures: no PKCS #11, timestamp servers or online revocation
- Missing: PKCS #11 tokens and smart cards on macOS and Linux; timestamp-server preferences; fetching OCSP/CRL online for LTV; FieldMDP and locking fields on signing; the OS trust store; EU Trusted Lists; signature graphics and saved appearances; compare signed version; signing in the browser.
- Evidence:
sign.pkcs11,sign.timestamp-servers,sign.field-mdp,sign.os-trust,sign.eutlplanned;sign.pades-bt,sign.ltv,sign.ocsp-crlpartial (caller-supplied evidence). Users ask for Acrobat-like validation (#824, #775, #718). - Impact: government and legal users sign with tokens and need B-LT/B-LTA.
- Estimate: 40–70 h; tokens need hardware to test. Doc: pdf-spec-parity.md.
11. Accessibility: checker only, no tagging tools
- Missing: autotag (document and fields), Tags, Order and Content panels, tag properties, Reading Order tool, artifact marking, table editor, role map, Make Accessible action, Read Out Loud; full keyboard operation of PdfCraft itself and a screen-reader audit.
- Evidence: all 32 checker rules shipped, but 21 tagging and reading features planned;
a11y.keyboard-only(P0) planned,a11y.app-screen-readerpartial. - Impact: remediation work is impossible; PdfCraft itself is not yet usable without a mouse.
- Estimate: 40–70 h. Doc: target-app-parity.md.
12. No measured fidelity harness against Acrobat
- Missing: side-by-side comparison of rendering, text extraction, form calculation and signature validation against Acrobat on synthetic fixtures; an interop suite that opens every kind of output we write (encrypted ones above all, after #774) in pdf.js, MuPDF and Poppler as oracle processes.
- Evidence: none exists; only text extraction has an oracle (word-F1 0.98 against
pdftotext). Acrobat captures must stay local inplan/acrobat/(clean-room,AGENTS.md§1.1). - Impact: until it exists, every quality number here is a judgement.
- Estimate: counted in gap 2 (≈ 20–30 h of it). Doc: target-app-parity.md.
13. Performance budgets and lazy loading of very large files
- Missing:
misc.performance-budgets(P0) andcore.lazy-loading(P0): open GB files within a memory budget, with budgets checked on Tier-1 platforms. - Evidence: #307 brought a 9,156-page file from > 10 GiB to ≈ 500 MiB inspection, but file-backed input and global memory budgets remain open; blurry fonts at common resolutions (#730).
- Estimate: 25–45 h. Doc: this file.
14. Arabic not mirrored; no Hindi, Indonesian, Korean, Vietnamese
- Missing: a right-to-left layout (panels, menus, alignment), bidirectional text in the text layout itself (wrapping, typed text); catalogs for Hindi, Indonesian, Korean and Vietnamese (Acrobat ships Korean; it ships Arabic in its Middle East edition; it ships none of the other three).
- Evidence: localization.md §Arabic;
misc.rtl-uiplanned. - Estimate: 30–50 h (Arabic RTL 20–35, four catalogs 10–15 plus review). Doc: localization-parity.md.
15. Forms: JavaScript object model, actions, submit, XFA depth
- Missing: the wider Acrobat JavaScript object model (annotations, layers, dialogs), document actions, the Actions tab triggers that run JavaScript, form submission, the debugger, barcode fields, rich-text values; XFA flattening and complete dynamic-form fidelity.
- Evidence:
form.js-hostpartial,form.document-actions,form.submit-form,edit.action-javascript,form.js-debugger,form.xfa-flattenplanned; XFA layout, FormCalc and data partial. - Estimate: 40–75 h. Doc: pdf-spec-parity.md.
16. UI precision gaps
- Missing: moving several selected objects across pages (same-page moves shipped, #844), nudging with arrow keys, single-key tool accelerators, rulers, grids and guides, loupe and dynamic zoom, multiple windows and split view, comment pop-ups that can be moved, connector lines, customisable quick tools; shortcut display and tool-mode bugs (#746, #721), macOS window controls (#789).
- Estimate: 30–60 h. Doc: ui-parity.md.
17. Certificate security and other protect gaps
- Missing: encrypting for certificate recipients (and opening such files), security policies, attachment-only encryption, redaction pattern locales and partial-word redaction, folder redaction, protected view, URL and attachment trust.
- Estimate: 15–30 h. Doc: pdf-spec-parity.md.
18. Print production tools absent
- Missing: Output Preview, separations, total area coverage, overprint preview, ink manager, colour conversion, printer marks, fix hairlines, flattener preview, colour management settings; print as image; PostScript output.
- Evidence: 18 print-production features planned (L area).
- Estimate: 25–45 h (part of the L area's 30–55). Doc: target-app-parity.md.
19. Preferences mostly missing
- Missing: most of Acrobat's twenty or so preference pages (General, Documents, Commenting, Forms, Identity, Signatures, Security, Measuring, Units and guides, Convert, …). Today: Interface language, Documents and view, Identity, Fill & Sign, JavaScript.
- Estimate: 15–25 h. Doc: ui-parity.md.
20. Scanners, GPU page rendering, pen pressure, Read Out Loud
- Missing: TWAIN/WIA/ICA/SANE scanning; GPU-accelerated page rendering (pages are rasterized on the CPU and uploaded); pressure-sensitive ink; platform text-to-speech.
- Estimate: 25–50 h; scanners need hardware. Doc: hardware-parity.md.
21. Compare: no side-by-side view or filters
- Missing: synchronised side-by-side view, filters by change type, page ranges, scanned documents.
- Estimate: 10–20 h. Doc: target-app-parity.md.
22. PDF 2.0 extras, linearization, Arlington validation
- Missing: UTF-8 text strings, associated files (
/AF), document parts, structure namespaces; linearized save (Fast Web View); deterministic save; structural validation against the Arlington model. - Estimate: 20–35 h. Doc: pdf-spec-parity.md.
23. Local AI provider
- Missing: the opt-in provider interface (local model or the user's own endpoint) and the features on it: summarize, ask with page citations, alternate-text and redaction suggestions. Acrobat's AI Assistant is a cloud service and out of scope.
- Estimate: 20–40 h. Doc: target-app-parity.md.
24. Checklist not diffed against Acrobat's own menus
- Missing: a menu and tool listing captured from Acrobat (names only,
plan/acrobat/, never committed) diffed against the checklist, so that features the checklist never listed show up. Also correctmisc.localizationandmisc.installers, which are stillplannedthough both ship. - Estimate: 4–8 h. Doc: target-app-parity.md.
Revision history
| Date | Change | Summary |
|---|---|---|
| 2026-10-11 | patch | Gap 2: 23 hayro-interpret and 10 hayro patches after axial and radial shadings became native gradients (backport of hayro 0.8) |
| 2026-10-11 | minor | Closed gap 1 (#774, fixed by #836; numbers kept, its interop suite moved to gap 12); gap 6 lists the fixed #799–#821 batch; gap 3 and 16 updated for #844 (same-page move), #740 (column select) and #759 (1:1 touchpad scrolling) |
| 2026-10-10 | minor | Removed the alpha markers: with the cross-app gate rule, gaps 1 and 8 are partial sub-cases, not blockers; stage alpha |
| 2026-10-10 | minor | Marked the alpha blockers (gap 1 and the Office part of gap 8) after the core-workflow gate put the stage at pre-alpha |
| 2026-10-10 | major | Created. Ranked 24 gaps from the 2026-10-10 re-measure, the open GitHub issues and the former ROADMAP.md §Where we're lacking and where we're going (renderer, hardening, fidelity, editing, Pro workflows, 1.0 polish), which this file replaces |