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
cmPageCountsammenligner antal sidercmPageTextjusterer og sammenligner udtrukket sidetekstcmObjectCountbevarer sin eksisterende vælgeværdi og udfører nu strukturel objekt- og sidesammenligningcmRenderedImageudfører perceptuel gengivet sammenligning med standard- eller kaldervalgte indstillingercmFullkombinerer antal sider, strukturel og gengivet sammenligningcmStructuraludfører side- og objektgrafsammenligning uden gengivelse
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