Dokumentjämförelse

THPDFDocComparison jämför två inlästa THotPDF-dokument och returnerar en deterministisk JSON-rapport

Strukturell jämförelse

cmStructural startar vid varje dokumentkatalog, följer indirekta referenser och tilldelar sökvägar från sorterade ordlistenycklar och arrayindex såsom $Catalog/Pages/Kids[0]/Contents

Skalärvärden och avkodade strömbytes hashhas med SHA-256, så stora strömmar jämförs stegvis utan att materialisera en annan fullständig kopia

Objekt med samma sökväg men olika signaturer rapporteras som objectChanged; lika signaturer vid olika sökvägar är objectMoved; återstående omatchade objekt är objectInserted eller objectDeleted

Sidjustering

Sidor med extraherbar text använder en semantisk textsignatur för justering och faller tillbaka till en strukturell signatur när texten är tom eller otillgänglig

Ett längsta-ökande-delsekvens-pass bevarar sidordning över infogningar och borttagningar samtidigt som genuin omsortering rapporteras som pageMoved

Omatchade justerade sidor blir pageChanged, pageInserted eller pageDeleted; sidmetadata signeras oberoende av /Parent, /Contents och /Resources för att undvika teckensnittsundermängds-kodningsbrus

Renderad jämförelse

cmRenderedImage och cmFull renderar gemensamma sidor vid den konfigurerade DPI:n och skannar varje bitmapp en gång för att beräkna ändrade pixlar, ändrad-pixel-kvot, medelabsolut-färgfel, maximal färgdelta och ett globalt SSIM-liknande luminanspoäng

THPDFRenderedCompareOptions väljer RGB- eller luminansskillnad, per-pixel-färgtolerans, minsta likhet, maximal ändrad-pixel-kvot, tile-storlek, behållning av ändrade regioner, pixelbudgetar och valfria PNG-överlägg

En sida är lik endast när både ändrad-pixel-kvoten och likhetsporten passerar; metrik utvärderas vid full precision och avrundas till sex decimaler endast för deterministisk JSON-rapportering

Ändrade tiles sammanfogas till deterministiska fyr-anslutna regioner och rapporteras med pixelrumsgränser, ändrad-pixel-antal och maximala färgdeltor

När heatmaps är aktiverade blandas ändrade pixlar från gult till rött över dokument A och sparas som page-000001-diff.png-stilfiler i den anropare-valda katalogen

Gränser och fullständighet

THPDFStructuralCompareLimits styr objekt-, kant-, sid-, djup-, skillnad-, strömbyte- och sökvägsbytesgränser

Om genomgången når en gräns inkluderar rapporten comparisonBudget, sätter comparisonComplete till false och kan inte rapportera dokumenten som identiska

Renderat arbete uppskattas före allokering och begränsas per sida och per jämförelse; renderings-, allokerings- eller överläggsfel lägger till renderBudget eller renderError, sätter renderComparisonComplete och comparisonComplete till false och misslyckas stängt

Jämförelselägen

Resultatformat

Rapporten inkluderar källantal, genomgångstelemetri, normaliserade strukturella och renderingsgränser, differenceCount, reportedDifferenceCount, differencesTruncated, comparisonComplete, identical och en differences-array

Renderade lägen returnerar även en renderedPages-array med sidstatus, dimensioner, metrik, ändrade regioner och valfria överläggssökvägar plus aggregerade renderade sid- och pixelantal

Varje skillnad kan inkludera stabila pathA- och pathB-värden, sidindex, objektnummer, en typ och en detaljsträng

Relaterade API:er

THPDFDocComparison · CompareWithOptions · THPDFRenderedCompareOptions · THPDFComparisonMode · HPDFDocCompareDocuments