HotPDF Enhancement Delivery Plan
Started 8 October 2026 against version 2.800.2; the continuous delivery objective remains active until every acceptance item below is implemented and verified
The subsequent remaining capability completion goal is active; the historical checklist below records delivery of its bounded support profiles through the listed releases and does not by itself complete the broader goal
Completed work requires working public APIs, meaningful non-GUI acceptance checks, canonical American English documentation, synchronised release metadata, and a local release commit
Compatibility is defined by explicit supported inputs and observable diagnostics; an interface placeholder, an unverified implementation, or an unsupported-feature rejection does not complete the corresponding feature
Delivery checklist
| Workstream | Acceptance criteria | Status |
|---|---|---|
| JSON and C ABI parity | Structured HTML/XHTML/XML/JSON and typed table CSV/JSON exports, external OCR engines, incremental signing and existing signature fields, document comparison, capability discovery, cancellation, resource limits, and failure-safe publication | In progress: structured and typed table exports implemented; external OCR, incremental signing, and comparison remain |
| HTML business templates | Images and form controls inside flex/grid, nested containers, wrapping flex rows, grid column spans, controlled font-face resources, and regression fixtures for invoices, reports, and two-column contracts | Complete: nested business layouts, wrapping/spans, images/forms and controlled fonts verified on Win32/Win64 |
| Scanned-document processing | Whole-page orientation, arbitrary-angle deskew, border/shadow clean-up, bounded perspective correction, invertible coordinate mapping, and an OCR-to-structured-data workflow | Planned |
| PDF/A archival conversion | Optional visible annotation/widget appearance composition, searchable text retention, a documented text/vector-preserving conversion profile, validation, explicit loss reporting, and atomic output | Planned |
| Contract comparison | Paragraph alignment, word/sentence insert/delete/replace records with both source positions, configurable boilerplate exclusion, and annotated PDF or HTML review output | Complete: two-sided contract edits, moves, exclusions and review artefacts verified on Delphi and FPC |
| Bounded paragraph editing | Reflow inside an explicit page rectangle, font and width changes, adjacent-content collision reporting, preview/commit/rollback, and supported cross-baseline and Form text editing | Planned |
| XLSX table export | Office-independent XLSX with typed numbers/dates/currencies/percentages, merged cells, source-page metadata, bounded resources, and failure-safe output | Complete: native, JSON, and C ABI workbooks with Win32/Win64 and independent-reader acceptance |
| Electronic invoice profiles | Versioned profile rule registration, correct Factur-X dispatch, dedicated XRechnung and French profile resources, explicit validation scope, and valid/invalid official acceptance fixtures | Complete: versioned registry, official XRechnung and French CTC layers, and real Saxon acceptance |
| Linux headless deployment | Real Linux ELF builds and non-GUI acceptance for parsing, text, forms, security/signatures, and supported rendering without Windows or an active desktop | In progress: real Linux portable parsing, object I/O, compression, cryptography, writer, and text/font paths; full document, form, signature, and rendering integration remains |
| Dynamic XFA compatibility | Budgeted conditional events, explicit data binding, per-instance presentation, host painter/accessibility integration, and reproducible dynamic form fixtures | Planned |
| Barcode recognition | Multiple symbols per raster, Data Matrix perspective sampling, bounded recognition, source coordinates, and rotated/perspective/damaged-symbol fixtures | In progress: multi-symbol and perspective regression acceptance completed; integration remains |
Release evidence
Version 2.801.0 adds structured and typed table export operations; Win32 and Win64 operation suites each pass 121 tests, including 30 new export cases, and independent JSON/XML/HTML/CSV readers verify the real Win64 ABI DLL with partial callbacks, budget failure, and publication cancellation
Version 2.802.0 adds native, JSON, and C ABI XLSX export; Win32 and Win64 each pass 134 operation and workbook cases, whilst real DLL output passes ZIP CRC and independent XML parsing with typed values and source-page selection
Version 2.803.0 adds explicit invoice rule registries and official XRechnung and French CTC validation; Win32 and Win64 each pass 17 cases, including real national-rule positive and negative samples, invalid engine settings, DTD rejection, and bounded process output
Version 2.804.0 releases the Linux portable core with eight regression groups on native Linux FPC 3.2.2 and 3.3.1, matching Windows compiler checks, and preserved Delphi/C++Builder type aliases; full Linux document, form, signature, and rendering acceptance remains in progress
Version 2.805.0 completes the HTML business-template workstream with 28 Win32 and 28 Win64 regression cases, actual PDF reloads, native fields, image objects, controlled font embedding, fallback and resource-budget checks
Version 2.806.0 completes the contract comparison workstream with 10 Win32 and 10 Win64 Delphi cases and five FPC acceptance groups per platform, covering real multi-page wording edits, cross-page paragraphs, duplicate clauses, Unicode review output, stale-source rejection, budgets and cancellation
Version 2.807.0 completes the barcode recognition workstream with 99 Win32 and 99 Win64 checks, including 18 new mixed-symbol, perspective, damaged-symbol, source-preservation, geometry, budget and cancellation checks; Windows FPC both platforms compile the native scanner and geometry helpers
Version 2.808.0 adds native headless classic-xref document loading, inherited resources and nested Form text, Unicode AcroForm inspection and value filling, and bounded atomic incremental saves; six native Linux FPC 3.2.2/3.3.1 and Windows FPC/Delphi targets each pass 46 assertions, whilst generated C++ interfaces and independent pypdf/MuPDF readers verify this first document profile
Version 2.809.0 adds Tesseract CLI/DLL and RapidOCR CLI/DLL to JSON and C ABI OCR jobs; Win32 and Win64 each verify 39 new operation cases and 134 existing operation/export cases, whilst actual Tesseract and independent PDF readers verify searchable text and unchanged scan pixels through the real Win64 ABI DLL
Version 2.810.0 completes scan preprocessing and structured OCR with 16 Win32 and 16 Win64 Delphi tests and six actual Windows FPC checks per platform; live Tesseract verifies four orientations and six corrected raster variants including a 37.5-degree scan, whilst geometry through ±179.25 degrees, work/allocation limits, process output overflow, in-flight cancellation, source preservation and semantic output are verified
Version 2.811.0 adds shared xref-stream and object-stream validation, hybrid revision precedence, exact wide numeric tokens, and source-preserving round trips for compressed objects; native Linux and Windows document/core acceptance and independent readers verify the expanded profile, and 66 parser regression cases per Delphi platform retain the existing performance gates
Version 2.812.0 completes the PDF/A archival enhancement workstream; Delphi Win32 and Win64 each pass 24 preservation cases and 47 existing raster cases, fresh Windows FPC and C++Builder interfaces compile, independent pypdf/MuPDF verify original content and resources, and three generated appearance/OCR artefacts pass veraPDF PDF/A-4 with zero failed rules or checks
Version 2.813.0 completes bounded paragraph editing with 20 Delphi cases per architecture and seven FPC acceptance groups per architecture, plus independent text/render checks across all four outputs; repeated-save regressions retain edits after the graph has been flushed
Version 2.814.0 adds AES-256 security to the native headless profile; two actual Linux FPC toolchains, two Windows FPC targets and two Delphi targets each pass 64 baseline, 81 provider and 82 encrypted-document assertions, C++Builder public headers compile, and independent strict readers validate 36 encrypted outputs and their preserved source prefixes
Version 2.815.0 completes the dynamic XFA host-adapter workstream through the documented instance-presentation helper profile; each Delphi architecture passes 23 new and 83 compatibility cases, fresh FPC sources and both C++Builder header targets compile, and independent pypdf/XML readers verify the persisted data and identities
Version 2.816.0 adds native streaming OpenSSL 3 CMS and exact PDF signature verification; six native Linux/Windows compiler targets each pass 40 provider and 13 document assertions, original Windows verifiers authenticate the generated signatures, both C++Builder public headers compile, and independent OpenSSL/pypdf/MuPDF checks verify the actual DER and PDF fixtures
Version 2.817.0 completes JSON/C ABI parity: each architecture passes 34 native/FPC signing assertions, 516 actual DLL signing assertions and 11 independent CMS checks; comparison passes 28 native/FPC and 82 actual DLL assertions per architecture plus 123 independent JSON/HTML/PDF checks, and existing operation, ABI and OCR regressions remain green
Version 2.818.0 adds native headless incremental PDF signature publication; each of six Linux/Windows compiler targets passes 45 plain/CAdES and 31 encrypted signing assertions, both C++Builder interfaces compile, and independent readers and OpenSSL verify 54 actual PDFs and 60 ByteRange signatures without weakening encrypted signature checks
Version 2.819.0 adds native CPU Cairo/FreeType PNG rendering and canonical standard-font advances; two native Linux FPC toolchains each pass 128 bounded rendering assertions and 946 independent pypdf/MuPDF pixel/geometry assertions, four Windows compiler targets build from fresh sources, both C++Builder public headers compile, and standard-font regressions match 1085 independent character origins across 15 actual pages
Version 2.820.0 completes the native Linux workstream with actual embedded Unicode widget appearances: each Linux FPC toolchain passes 19 metadata and 58 appearance assertions, each of four Windows compiler targets passes 19 and 52, both C++Builder interfaces compile, and independent readers validate 42 actual PDFs with 1294 assertions including original source prefixes, AES security, exact font/glyph/ToUnicode data and raster fidelity
The original eleven bounded workstreams have released-version evidence above; broader capabilities requested in the subsequent completion goal remain open until their implementation and required acceptance are complete
Active capability completion
The completion plan records the later releases and the remaining work; candidate implementations and partial target results do not establish a released feature or completion of the goal
| Active delivery | Remaining acceptance |
|---|---|
| FDF and annotation transport | Complete appearance states and resource graphs, embedded files and wider action chains, annotation replacement and removal, field policy modelling and incremental interchange with independent output verification |
| Native rendering | Additional default-appearance operators, text paint and clipping modes, graphics states, font and transform combinations, independent geometry and raster comparisons, printing policies and trial source rebuilding |
| Rich-text CSS and layout | Build on released style sheets, media profiles, external resources and finite numeric math; complete further properties, selectors and media features, tables, images and general layout |
| Dynamic XFA runtime | General template and form DOM editing, explicit remerge, occurrence and binding rules, stable aliases, external media and further consumers with transactional cancellation and persisted-reader verification |
Current FPC implementation and release acceptance require version 3.3.1 or later on every platform and record the actual compiler build; older compiler results above retain their historical identities and are not current release gates
Execution constraints
Work directly in the canonical project directory, preserve unrelated edits, run non-GUI checks with viewer launch suppressed, stage only task changes, and never push
Update only canonical en-us documentation during implementation; translation synchronisation is a separate task