Piano di Consegna dei Miglioramenti di HotPDF
Avviato l'8 ottobre 2026 sulla versione 2.800.2; l'obiettivo di consegna continua resta attivo finché ogni item di accettazione qui sotto è implementato e verificato
Il successivo obiettivo di completamento delle capacità rimanenti è attivo; la checklist storica non stabilisce il completamento della compatibilità del rendering generale, del trasporto FDF, del CSS del rich text o dell'XFA dinamico
Il lavoro completato richiede API pubbliche funzionanti, controlli di accettazione non GUI significativi, documentazione canonica in American English, metadata di rilascio sincronizzati e un commit di rilascio locale
La compatibilità è definita da input supportati espliciti e diagnostica osservabile; un placeholder di interfaccia, un'implementazione non verificata o un rifiuto di funzionalità non supportata non completa la funzionalità corrispondente
Checklist di consegna
| Workstream | Criteri di accettazione | Stato |
|---|---|---|
| Parità JSON e C ABI | Esportazioni strutturate HTML/XHTML/XML/JSON e di tabelle tipizzate CSV/JSON, motori OCR esterni, firma incrementale e campi firma esistenti, confronto di documenti, capability discovery, cancellazione, limiti di risorse e pubblicazione failure-safe | In corso: esportazioni strutturate e di tabelle tipizzate implementate; restano OCR esterno, firma incrementale e confronto |
| Template HTML di business | Immagini e controlli form dentro flex/grid, contenitori annidati, righe flex con wrapping, column span in grid, risorse font-face controllate e fixture di regression per fatture, report e contratti a due colonne | Completato: layout di business annidati, wrapping/span, immagini/form e font controllati verificati su Win32/Win64 |
| Elaborazione di documenti scansionati | Orientamento dell'intera pagina, deskew ad angolo arbitrario, pulizia di bordi/ombre, correzione di prospettiva con limiti, mapping di coordinate invertibile e un workflow da OCR a dati strutturati | Pianificato |
| Conversione d'archivio PDF/A | Composizione opzionale delle appearance visibili di annotazioni/widget, conservazione del testo ricercabile, un profilo di conversione documentato che preserva testo/vettori, validazione, report esplicito delle perdite e output atomico | Pianificato |
| Confronto dei contratti | Allineamento dei paragrafi, record di insert/delete/replace a livello di parola/frase con entrambe le posizioni sorgente, esclusione configurabile del boilerplate e output di revisione PDF o HTML annotato | Completato: modifiche bidirezionali ai contratti, spostamenti, esclusioni e artefatti di revisione verificati su Delphi e FPC |
| Editing di paragrafi con limiti | Reflow dentro un rettangolo di pagina esplicito, modifiche di font e larghezza, report delle collisioni con il contenuto adiacente, preview/commit/rollback ed editing supportato di testo cross-baseline e nei Form | Pianificato |
| Esportazione di tabelle XLSX | XLSX indipendente da Office con numeri/date/valute/percentuali tipizzati, celle unite, metadata della pagina sorgente, risorse con limiti e output failure-safe | Completato: workbook nativi, JSON e C ABI con accettazione Win32/Win64 e lettori indipendenti |
| Profili di fattura elettronica | Registrazione delle regole di profilo con versionamento, dispatch corretto di Factur-X, risorse dedicate ai profili XRechnung e francesi, scope di validazione esplicito e fixture di accettazione ufficiali valide/non valide | Completato: registry con versionamento, livelli ufficiali XRechnung e CTC francese, e accettazione Saxon reale |
| Deployment Linux headless | Build ELF Linux reali e accettazione non GUI per parsing, testo, form, sicurezza/firme e rendering supportato senza Windows né un desktop attivo | In corso: parsing portabile Linux reale, object I/O, compressione, crittografia, writer e percorsi testo/font; resta l'integrazione completa di documenti, form, firme e rendering |
| Compatibilità XFA dinamica | Eventi condizionali con budget, data binding esplicito, presentazione per istanza, integrazione painter/accessibility dell'host e fixture riproducibili di form dinamici | Pianificato |
| Riconoscimento barcode | Simboli multipli per raster, campionamento in prospettiva di Data Matrix, riconoscimento con limiti, coordinate sorgente e fixture con simboli ruotati/in prospettiva/danneggiati | In corso: accettazione di regression multi-symbol e prospettiva completata; resta l'integrazione |
Evidenze di rilascio
La versione 2.801.0 aggiunge le operazioni di esportazione strutturata e di tabelle tipizzate; le suite di operazioni Win32 e Win64 passano ciascuna 121 test, di cui 30 nuovi casi di esportazione, e lettori indipendenti JSON/XML/HTML/CSV verificano la vera DLL ABI Win64 con callback parziali, fallimento di budget e cancellazione della pubblicazione
La versione 2.802.0 aggiunge l'esportazione XLSX nativa, JSON e C ABI; Win32 e Win64 passano ciascuno 134 casi tra operazioni e workbook, mentre l'output reale della DLL passa i controlli ZIP CRC e il parsing XML indipendente con valori tipizzati e selezione delle pagine sorgente
La versione 2.803.0 aggiunge registry espliciti di regole di fattura e la validazione ufficiale XRechnung e CTC francese; Win32 e Win64 passano ciascuno 17 casi, inclusi campioni positivi e negativi con regole nazionali reali, impostazioni del motore non valide, rifiuto del DTD e output di processo con limiti
La versione 2.804.0 rilascia il core portabile Linux con otto gruppi di regression su FPC Linux nativo 3.2.2 e 3.3.1, allineato ai controlli dei compilatori Windows, e gli alias di tipo Delphi/C++Builder preservati; resta in corso l'accettazione completa su Linux di documenti, form, firme e rendering
La versione 2.805.0 completa il workstream dei template HTML di business con 28 casi di regression Win32 e 28 Win64, ricaricamenti reali di PDF, campi nativi, oggetti immagine, embedding controllato dei font, controlli di fallback e di budget delle risorse
La versione 2.806.0 completa il workstream del confronto dei contratti con 10 casi Delphi Win32 e 10 Win64 e cinque gruppi di accettazione FPC per piattaforma, coprendo modifiche reali di testo multipagina, paragrafi cross-page, clausole duplicate, output di revisione Unicode, rifiuto di sorgenti obsolete, budget e cancellazione
La versione 2.807.0 completa il workstream del riconoscimento dei codici a barre con 99 controlli Win32 e 99 Win64, inclusi 18 nuovi controlli di simboli misti, prospettiva, simboli danneggiati, preservazione della sorgente, geometria, budget e cancellazione; Windows FPC su entrambe le piattaforme compila lo scanner nativo e gli helper di geometria
La versione 2.808.0 aggiunge il caricamento nativo headless di documenti classic-xref, risorse ereditate e testo Form annidato, ispezione e riempimento di valori AcroForm Unicode e salvataggi incrementali atomici limitati; sei target nativi Linux FPC 3.2.2/3.3.1 e Windows FPC/Delphi passano ciascuno 46 asserzioni, mentre le interfacce C++ generate e i lettori indipendenti pypdf/MuPDF verificano questo primo profilo di documento
La versione 2.809.0 aggiunge Tesseract CLI/DLL e RapidOCR CLI/DLL ai job OCR JSON e C ABI; Win32 e Win64 verificano ciascuno 39 nuovi casi operazione e 134 casi operazione/esportazione esistenti, mentre Tesseract reale e lettori PDF indipendenti verificano testo ricercabile e pixel di scansione invariati attraverso la vera DLL ABI Win64
La versione 2.810.0 completa preelaborazione delle scansioni e OCR strutturato con 16 test Delphi Win32 e 16 Win64 e sei verifiche Windows FPC reali per piattaforma; Tesseract dal vivo verifica quattro orientamenti e sei varianti raster corrette, compresa una scansione a 37,5 gradi, mentre geometria fino a ±179,25 gradi, limiti di lavoro/allocazione, overflow dell'output del processo, cancellazione in corso, preservazione della sorgente e output semantico sono verificati
La versione 2.811.0 aggiunge validazione condivisa di xref-stream e object-stream, precedenza delle revisioni ibride, token numerici ampi esatti e round trip che preservano la sorgente per oggetti compressi; accettazione nativa di documenti/core su Linux e Windows e lettori indipendenti verificano il profilo esteso, e 66 casi di regressione del parser per piattaforma Delphi traggono i gate di prestazioni esistenti
La versione 2.812.0 completa il workstream dei miglioramenti d'archivio PDF/A; Delphi Win32 e Win64 passano ciascuno 24 casi di preservazione e 47 casi raster esistenti, le interfacce Windows FPC e C++Builder fresche compilano, pypdf/MuPDF indipendenti verificano contenuto e risorse originali, e tre artifact appearance/OCR generati passano veraPDF PDF/A-4 con zero regole o controlli falliti
La versione 2.813.0 completa la modifica limitata dei paragrafi con 20 casi Delphi per architettura e sette gruppi di accettazione FPC per architettura, più verifiche indipendenti di testo/rendering su tutti e quattro gli output; le regressioni di salvataggio ripetuto traggono le modifiche dopo lo svuotamento del grafo
La versione 2.814.0 aggiunge la sicurezza AES-256 al profilo headless nativo; due toolchain Linux FPC reali, due target Windows FPC e due target Delphi passano ciascuno 64 asserzioni di base, 81 di provider e 82 di documenti cifrati, gli header pubblici C++Builder compilano, e lettori rigorosi indipendenti validano 36 output cifrati e i loro prefissi sorgente preservati
La versione 2.815.0 completa il workstream dell'host-adapter XFA dinamico attraverso il profilo di helper di presentazione delle istanze documentato; ogni architettura Delphi passa 23 casi nuovi e 83 di compatibilità, sorgenti FPC fresche ed entrambi i target di header C++Builder compilano, e lettori indipendenti pypdf/XML verificano i dati e le identità persistiti
La versione 2.816.0 aggiunge CMS OpenSSL 3 nativo in streaming e verifica esatta delle firme PDF; sei target nativi di compilatori Linux/Windows passano ciascuno 40 asserzioni di provider e 13 di documento, i verificatori Windows originali autenticano le firme generate, entrambi gli header pubblici C++Builder compilano, e i controlli indipendenti OpenSSL/pypdf/MuPDF verificano le fixture reali DER e PDF
La versione 2.817.0 completa il parity JSON/C ABI: ogni architettura passa 34 asserzioni di firma native/FPC, 516 asserzioni reali di firma DLL e 11 controlli CMS indipendenti; il confronto passa 28 asserzioni native/FPC e 82 reali DLL per architettura più 123 controlli indipendenti JSON/HTML/PDF, e le regressioni esistenti di operazioni, ABI e OCR restano verdi
La versione 2.818.0 aggiunge la pubblicazione nativa headless di firme PDF incrementali; ciascuno dei sei target di compilatori Linux/Windows passa 45 asserzioni di firma plain/CAdES e 31 cifrate, entrambe le interfacce C++Builder compilano, e lettori indipendenti e OpenSSL verificano 54 PDF reali e 60 firme ByteRange senza indebolire i controlli delle firme cifrate
La versione 2.819.0 aggiunge rendering PNG nativo CPU Cairo/FreeType e avanzamenti canonici dei font standard; due toolchain Linux FPC native passano ciascuna 128 asserzioni di rendering limitato e 946 asserzioni indipendenti di pixel/geometria pypdf/MuPDF, quattro target di compilatori Windows si costruiscono da sorgenti fresche, entrambi gli header pubblici C++Builder compilano, e le regressioni dei font standard corrispondono a 1085 origini indipendenti di caratteri su 15 pagine reali
La versione 2.820.0 completa il workstream Linux nativo con appearance reali incorporati di widget Unicode: ogni toolchain Linux FPC passa 19 asserzioni di metadata e 58 di appearance, ciascuno dei quattro target di compilatori Windows passa 19 e 52, entrambe le interfacce C++Builder compilano, e i lettori indipendenti validano 42 PDF reali con 1294 asserzioni, inclusi prefissi sorgente originali, sicurezza AES, dati esatti font/glifo/ToUnicode e fedeltà del raster
Gli undici workstream limitati originali hanno evidenze di versione rilasciata sopra; le capacità più ampie richieste nel successivo obiettivo di completamento restano aperte finché la loro implementazione e l'accettazione richiesta non sono complete
Completamento delle capacità attive
Il piano di completamento registra i rilasci successivi e il lavoro rimanente; le implementazioni candidate e i risultati parziali dei target non stabiliscono una funzionalità rilasciata né il completamento dell'obiettivo
| Consegna attiva | Accettazione rimanente |
|---|---|
| Trasporto FDF e annotazioni | Costruire sulla 2.973.0 rilasciata con i grafi di annotazioni FDF binari, stati di appearance, risorse condivise e sostituzione transazionale e la 2.974.0 con la rimozione transazionale delle annotazioni; completare la rimozione dell'albero di campi Widget, i file incorporati, catene di azioni più ampie e ulteriore modellazione delle politiche dei campi con verifica indipendente dell'output |
| Rendering nativo | Costruire sulla 2.972.0 rilasciata con le appearance predefinite delle annotazioni e il clipping del testo; completare font variabili non predefiniti, ulteriori stati grafici, combinazioni di font e trasformazioni, confronti indipendenti di geometria e raster, politiche di stampa e ricostruzione di sorgenti di prova |
| CSS e layout del rich text | Costruire sui fogli di stile, profili media, risorse esterne e matematica numerica finita rilasciati; completare ulteriori proprietà, selettori e feature media, tabelle, immagini e layout generale |
| Runtime dinamico XFA | Modifica generale del DOM di template e modulo, remerge esplicito, regole di occorrenza e binding, alias stabili, media esterni e ulteriori consumer con cancellazione transazionale e verifica con lettori persistiti |
L'implementazione e l'acceptance di release attuali di FPC richiedono la versione 3.3.1 o successiva su ogni piattaforma e registrano il build reale del compilatore; i risultati dei compilatori più vecchi sopra trattengono le loro identità storiche e non sono gate di release attuali
Vincoli di esecuzione
Lavora direttamente nella directory canonica del progetto, preserva le modifiche non correlate, esegui i controlli non GUI con il lancio del viewer soppresso, fai lo staging delle sole modifiche del task e non fare mai push
Aggiorna solo la documentazione canonica en-us durante l'implementazione; la sincronizzazione delle traduzioni è un task separato