Native Linux contract comparison
hpdf_document_compare_json_v1 si vypůjčí dva načtené dokumentové handly a spustí nativní sémantické porovnání kontraktů či obecné porovnání dokumentů, s připraveným výstupem přes callbacky
{"schemaVersion":1,"type":"compare.contract","format":"html",
"title":"Contract review","options":{"granularity":"word",
"ignoreRepeatedHeadersFooters":true,"maxAlignmentCells":2000000},
"limits":{"memoryBytes":268435456,"resultBytes":4194304,"outputBytes":8388608}}
Sémantické kontrahové reporty
Nativní adaptér použije tentýž přenosný algoritmus zarovnání a rozdílů odstavců jako Windows contract API, tedy i změny slov či vět, přesuny napříč stránkami, vyloučení opakovaných okrajů, filtry boilerplate i pokračování stránek
Kontrahové reporty obsahují comparisonComplete, identical, differenceCount, počty stránek a odstavců, vyloučení, počítadla práce i zarovnání, plus u každé změny text, kontext i pozice
Každá pozice obsahuje zero-based stránku a odstavec, one-based znakový offset, počet znaků i PDF obdélníky v user space pokrývající protínající sémantické řádky; obdélníky reprezentují geometrii řádků
Nativní extrakce glyfů zachovává vnořené Form resource i matice, zděděné meze stránek i oprávnění k extrakci u plaintext i autentizovaných AES R5/R6 vstupů; stránky bez extrahovatelného textu reportují selhání extrakce a vyžadují OCR či explicitní odebrání prázdných stránek
Volby a limity
options přijímá granularity (word či sentence), ignoreCase, ignoreRepeatedHeadersFooters, normalizeMarginDigits, joinPageContinuations, headerMarginPoints, footerMarginPoints, paragraphGapFactor, minimumParagraphSimilarity, minimumRepeatedPages a excludedLineTexts
Explicitní kladné celočíselné limity zahrnují maxPages, maxParagraphs, maxSemanticLines, maxCharacters, maxTokens, maxDifferences, maxAlignmentCells a maxWorkUnits; paměťové a výsledkové rozpočty operace ty limity před provedením omezí
compare přijímá režimy page-count, page-text, object-count, rendered-image, structural i full s JSON výstupem; dostupné režimy odhalte přes comparisonModes a kontrahové formáty přes contractFormats
format:json zapíše výsledkový JSON do volitelného binárního callbacku i do povinného výsledkového callbacku; format:html vyžaduje binární callback a zapíše samostatný UTF-8 review s escapovaným titulkem i zněním kontraktu
format:pdf vyžaduje binární output callbacky a vytvoří skutečnou anotovanou review kopii side:before či side:after, defaultně after; options.maxHighlights omezí zvýrazněné sémantické řádky
Životnost a publikace
Během volání držte obě handla naživu; porovnání se stejným handlem je podporované a souběžná porovnání v opačném pořadí si zámky pořídí v stabilním pořadí
Všechny callbacky běží synchronně na volajícím vlákně; limity resource se dočasně aplikují na každý načtený dokument a poté obnoví, tedy i na cestách selhání a zrušení
Volání nepřijímá žádný vstupní callback ani členy s cestami k souborům a zachovává oba zdrojové dokumenty i jejich revize; binární i JSON výstup se připraví a ohraničí, dřív než publikace začne
Pascal rozhraní
HPDFCompareHeadlessContracts přijme dva objekty THPDFHeadlessDocument se stávajícími THPDFContractCompareOptions a vrátí THPDFContractCompareReport
HPDFHeadlessContractSource vystavuje nativní adaptér; HPDFCompareContractSources v HPDFContractCompareCore přijme vlastní ohraničené callbacky počtu stránek, sémantických stránek i viditelných boxů pro přenosné jádro
HPDFContractCompareCore vlastní sdílený algoritmus, typy reportů i HTML renderer, bez závislostí na VCL či LCL; stávající Windows rozhraní HPDFContractCompare si přes aliasy a adaptéry uchovává své typy, konstanty i vstupní body načtených dokumentů
THPDFHeadlessDocument.ExtractPageGlyphs a AnalyzePageSemanticText vystavují pozicované glyfy i sémantický layout přes téhož walkera vnořeného obsahu, jaký používá ExtractPageText
Nativní akceptace ABI verifikuje skutečná porovnání plaintext, AES R5/R6 i vnořených Form, rollback, rozpočty i pořadí zámků; nezávislé čtečky pypdf a MuPDF verifikují kompletní rozdíly, přesné kontexty, offsety i geometrii zdrojových glyfů
Nativní Linux C ABI · Porovnání kontraktů · Zbývající dodací plán