Dokumentsammenligning

THPDFDocComparison sammenligner to indlæste THotPDF-dokumenter og returnerer en deterministisk JSON-rapport

Strukturel sammenligning

cmStructural starter ved hvert dokumentkatalog, følger indirekte referencer og tildeler stier fra sorterede ordbogsnøgler og arrayindekser som $Catalog/Pages/Kids[0]/Contents

Skalarværdier og afkodede strømbytes hashes med SHA-256, så store strømme sammenlignes inkrementelt uden at materialisere endnu en komplet kopi

Objekter med samme sti men forskellige signaturer rapporteres som objectChanged; ens signaturer på forskellige stier er objectMoved; resterende uparrede objekter er objectInserted eller objectDeleted

Sidejustering

Sider med udtrækkelig tekst bruger en semantisk tekstsignatur til justering og falder tilbage til en strukturel signatur, når teksten er tom eller utilgængelig

En gennemgang med længste voksende delsekvens bevarer siderækkefølgen ved indsættelser og sletninger og rapporterer samtidig ægte omordning som pageMoved

Uparrede justerede sider bliver pageChanged, pageInserted eller pageDeleted; sidemetadata signeres uafhængigt af /Parent, /Contents og /Resources for at undgå støj fra skrifttypesubsetkodning

Gengivet sammenligning

cmRenderedImage og cmFull gengiver fælles sider ved konfigureret DPI og scanner hver bitmap én gang for at beregne ændrede pixels, andel af ændrede pixels, gennemsnitlig absolut farvefejl, maksimal farvedelta og en global SSIM-lignende luminansscore

THPDFRenderedCompareOptions vælger RGB- eller luminansforskel, pixelfarvetolerance, minimumslighed, maksimal andel af ændrede pixels, tile-størrelse, bevarelse af ændrede områder, pixelbudgetter og valgfrie PNG-overlays

En side er kun lignende, når både andelen af ændrede pixels og lighedsgrænserne består; metriker evalueres med fuld præcision og afrundes kun til seks decimaler for deterministisk JSON-rapportering

Ændrede tiles samles i deterministiske fireforbundne områder og rapporteres med grænser i pixelrum, antal ændrede pixels og maksimale farvedeltaer

Når heatmaps er aktiveret, blandes ændrede pixels fra gult til rødt over dokument A og gemmes som filer i stil med page-000001-diff.png i den kaldervalgte mappe

Grænser og fuldstændighed

THPDFStructuralCompareLimits styrer grænser for objekt, kant, side, dybde, forskel, strømbyte, værdibyte og stibyte

Hvis gennemløbet når en grænse, indeholder rapporten comparisonBudget, sætter comparisonComplete til false og kan ikke rapportere dokumenterne som identiske

Gengivet arbejde estimeres før allokering og afgrænses pr. side og pr. sammenligning; fejl i gengivelse, allokering eller overlay tilføjer renderBudget eller renderError, sætter renderComparisonComplete og comparisonComplete til false og fejler lukket

Sammenligningstilstande

Resultatformat

Rapporten omfatter kildetællinger, gennemløbstelemetri, normaliserede strukturelle grænser og gengivelsesgrænser, differenceCount, reportedDifferenceCount, differencesTruncated, comparisonComplete, identical og et differences-array

Gengivelsestilstande returnerer også et renderedPages-array med sidestatus, dimensioner, metriker, ændrede områder og valgfrie overlaystier samt samlede tal for gengivne sider og pixels

Hver forskel kan indeholde stabile pathA- og pathB-værdier, sideindekser, objektnumre, en type og en detaljestreng

Relaterede API'er

THPDFDocComparison · CompareWithOptions · THPDFRenderedCompareOptions · THPDFComparisonMode · HPDFDocCompareDocuments