Confronto di contratti nativo su Linux
hpdf_document_compare_json_v1 prende in prestito due handle di documenti caricati ed esegue il confronto semantico nativo di contratti o il confronto generale di documenti, con output preparato attraverso callback
{"schemaVersion":1,"type":"compare.contract","format":"html",
"title":"Contract review","options":{"granularity":"word",
"ignoreRepeatedHeadersFooters":true,"maxAlignmentCells":2000000},
"limits":{"memoryBytes":268435456,"resultBytes":4194304,"outputBytes":8388608}}
Report semantici dei contratti
L'adattatore nativo usa lo stesso algoritmo portabile di allineamento dei paragrafi e delle differenze dell'API contratti Windows, incluse modifiche a parole o frasi, spostamenti cross-pagina, esclusione di margini ripetuti, filtri boilerplate e continuità di pagina
I report dei contratti includono comparisonComplete, identical, differenceCount, conteggi di pagine e paragrafi, esclusioni, contatori di lavoro e allineamento, più testo, contesto e locations di ogni modifica
Ogni location contiene pagina e paragrafo a base zero, un offset carattere a base uno, numero di caratteri e rettangoli user-space PDF che coprono le righe semantiche intersecanti; i rettangoli rappresentano la geometria delle righe
L'estrazione nativa dei glifi preserva risorse Form annidate e matrici, confini di pagina ereditati e permessi di estrazione per input plaintext e AES R5/R6 autenticati; le pagine senza testo estraibile riportano un fallimento di estrazione e richiedono OCR o rimozione esplicita delle pagine bianche
Opzioni e limiti
options accetta granularity (word o sentence), ignoreCase, ignoreRepeatedHeadersFooters, normalizeMarginDigits, joinPageContinuations, headerMarginPoints, footerMarginPoints, paragraphGapFactor, minimumParagraphSimilarity, minimumRepeatedPages e excludedLineTexts
I limiti espliciti a interi positivi includono maxPages, maxParagraphs, maxSemanticLines, maxCharacters, maxTokens, maxDifferences, maxAlignmentCells e maxWorkUnits; i budget di memoria e result dell'operazione limitano questi valori prima dell'esecuzione
compare accetta modalità page-count, page-text, object-count, rendered-image, structural e full con output JSON; scopri le modalità disponibili attraverso comparisonModes e i formati contratto attraverso contractFormats
format:json scrive il JSON del risultato sia alla callback binaria opzionale sia alla callback result obbligatoria; format:html richiede una callback binaria e scrive una review UTF-8 autonoma con titolo e testo del contratto con escape
format:pdf richiede callback di output binarie e crea una vera copia di review annotata di side:before o side:after, con default after; options.maxHighlights limita le righe semantiche evidenziate
Durata di vita e pubblicazione
Mantieni entrambi gli handle vivi durante la chiamata; il confronto stesso-handle è supportato e i confronti concorrenti in ordine opposto acquisiscono i lock in un ordine stabile
Tutte le callback girano sincrone sul thread chiamante; i limiti di risorse vengono applicati temporaneamente a ogni documento caricato e ripristinati dopo, inclusi i percorsi di fallimento e cancellazione
La chiamata non accetta callback di input né membri di percorsi file, e preserva entrambi i documenti sorgente e le loro revisioni; output binario e JSON vengono preparati e delimitati prima che la pubblicazione inizi
Interfaccia Pascal
HPDFCompareHeadlessContracts accetta due oggetti THPDFHeadlessDocument con le THPDFContractCompareOptions esistenti e restituisce THPDFContractCompareReport
HPDFHeadlessContractSource espone l'adattatore nativo; HPDFCompareContractSources in HPDFContractCompareCore accetta callback personalizzate delimitate di page-count, semantic-page e visible-box per il core portabile
HPDFContractCompareCore possiede l'algoritmo condiviso, i tipi di report e il renderer HTML senza dipendenze VCL o LCL; l'interfaccia Windows HPDFContractCompare esistente preserva i suoi tipi, costanti ed entry point su documenti caricati attraverso alias e adattatori
THPDFHeadlessDocument.ExtractPageGlyphs e AnalyzePageSemanticText espongono glifi posizionati e layout semantico attraverso lo stesso walker di contenuto annidato usato da ExtractPageText
Il collaudo dell'ABI nativa verifica confronti reali plaintext, AES R5/R6 e Form annidati, rollback, budget e ordine dei lock; reader indipendenti pypdf e MuPDF verificano differenze complete, contesti esatti, offset e geometria dei glifi sorgente
ABI C nativa su Linux · Confronto di contratti · Piano di consegna residuo