Poređenje dokumenata

THPDFDocComparison upoređuje dva učitana THotPDF dokumenta i vraća deterministički JSON izveštaj

Strukturno poređenje

cmStructural počinje u svakom katalogu dokumenta, prati indirektne reference i dodeljuje putanje iz sortiranih ključeva rečnika i indeksa nizova poput $Catalog/Pages/Kids[0]/Contents

Skalarne vrednosti i dekodirani bajtovi tokova heširaju se sa SHA-256, tako da se veliki tokovi upoređuju inkrementalno bez materijalizovanja druge kompletne kopije

Objekti sa istom putanjom ali različitim potpisima izveštavaju se kao objectChanged; jednaki potpisi na različitim putanjama su objectMoved; preostali neuskladjeni objekti su objectInserted ili objectDeleted

Usklađivanje stranica

Stranice sa izdvojivim tekstom koriste semantički tekstualni potpis za usklađivanje i prelaze na strukturni potpis kada je tekst prazan ili nedostupan

Prolaz najdužeg rastućeg podniza čuva redosled stranica preko umetanja i brisanja dok izveštava istinsko preuređivanje kao pageMoved

Neusklađene usklađene stranice postaju pageChanged, pageInserted ili pageDeleted; metapodaci stranice potpisuju se nezavisno od /Parent, /Contents i /Resources radi izbegavanja šuma kodiranja font podskupa

Poređenje renderovanih

cmRenderedImage i cmFull renderuju zajedničke stranice na konfigurisanom DPI-ju i skeniraju svaki bitmap jednom radi računanja promenjenih piksela, omera promenjenih piksela, srednje apsolutne greške boje, maksimalne delta boje i globalne SSIM-nalik ocene luminantnosti

THPDFRenderedCompareOptions bira RGB ili luminantnosnu razliku, toleranciju boje po pikselu, minimalnu sličnost, maksimalni omer promenjenih piksela, veličinu pločice, zadržavanje promenjenog područja, budžete piksela i opcione PNG preklope

Stranica je slična samo kada i omer promenjenih piksela i kapija sličnosti prođu; metrike se vrednuju punom preciznošću i zaokružuju na šest decimalnih mesta samo za determinističko JSON izveštavanje

Promenjene pločice spajaju se u determinističke četvoropovezane regione i izveštavaju sa graničnim poljima u piksel-prostoru, brojanjima promenjenih piksela i maksimalnim deltama boje

Kada su heatmape omogućene, promenjeni pikseli mešaju se od žute do crvene preko dokumenta A i čuvaju kao fajlovi stila page-000001-diff.png u direktorijumu koji izabere pozivalac

Granice i potpunost

THPDFStructuralCompareLimits kontroliše ograničenja objekta, ivice, stranice, dubine, razlike, bajtova toka, bajtova vrednosti i bajtova putanje

Ako prolaz dosegne ograničenje, izveštaj uključuje comparisonBudget, postavlja comparisonComplete na false i ne može da izveštava dokumente kao identične

Renderovani rad procenjuje se pre alokacije i ograničava po stranici i po poređenju; neuspesi renderovanja, alokacije ili preklopa dodaju renderBudget ili renderError, postavljaju renderComparisonComplete i comparisonComplete na false i ne uspevaju zatvoreno

Režimi poređenja

Format rezultata

Izveštaj uključuje brojanja izvora, telemetriju prolaza, normalizovana strukturna i render ograničenja, differenceCount, reportedDifferenceCount, differencesTruncated, comparisonComplete, identical i niz differences

Renderovani režimi takođe vraćaju niz renderedPages sa statusom stranice, dimenzijama, metrikama, promenjenim regionima i opcionim putevima preklopa, plus agregatna brojanja renderovanih stranica i piksela

Svaka razlika može da uključi stabilne vrednosti pathA i pathB, indekse stranica, brojeve objekata, tip i string detalja

Povezani API-ji

THPDFDocComparison · CompareWithOptions · THPDFRenderedCompareOptions · THPDFComparisonMode · HPDFDocCompareDocuments