Native headless dokumentsammenligning

HPDFHeadlessCompare sammenligner to indlæste native dokumenter gennem HPDFCompareHeadlessDocuments; Linux callback-ABI'en udstiller samme implementering gennem hpdf_document_compare_json_v1 med type:compare

Pascal modeJSON modeSammenlignet indhold
hcmPageCountpagecountPage tree-blad-antal
hcmPageTextpagetextSideantal og udtrukket Unicode-tekst
hcmObjectCountobjectcountSideantal og fysiske in-use cross-reference-objektantal
hcmRenderedImagerenderedimageSideantal, renderede dimensioner og native Cairo-pixels
hcmStructuralstructuralSideantal og normaliseret katalog-, informations- og utilgængelige objektgrafer
hcmFullfullSide- og objektantal, normaliserede grafer, Unicode-tekst og renderede pixels

Strukturel ækvivalens

Strukturel sammenligning opløser indirekte referencer og sorterer dictionary-indgange, normaliserer PDF-navne og literal- eller hexadecimale strengrepræsentationer og dekoder almindelige stream-filtre, inden indhold hashes med SHA-256

Objektnumre, serialiseringsrækkefølge og almindelig stream-komprimering ændrer ikke strukturel ækvivalens; terminale billedencodings beholder deres filter- og decode-politik, mens utilgængelige objekter sammenlignes som multiset

Krypteringsdictionaries samt cross-reference- eller object stream-lagercontainere ekskluderes fra semantisk struktur; autentificeret AES R5/R6-indhold sammenlignes efter dekryptering med extraction-tilladelse håndhævet

En strukturel forskel rapporterer dokumentniveau-stien $Document; fysiske objektantal forbliver en separat mode og kan afvige, når ækvivalent indhold bruger forskellige lagerlayouts

Renderet sammenligning

Hver side renderes faktisk med den native Cairo-enhed ved den valgte DPI; dekodede billedpixels komponeres på hvidt og sammenlignes i RGB eller luminans

Rapporter indeholder dimensioner, ændrede pixel-antal, maksimal kanalforskel, middel absolut fejl, ændret pixelforhold og lighed; lighed er 1 - meanAbsoluteError / 255

En pixel ændres, når dens maksimale kanalforskel overstiger ColorTolerance; en side består kun, når dimensionerne matcher, og både lighed og ændret pixelforhold opfylder de konfigurerede tærskler

Rendering kræver samme understøttede fonts, billedcodecs og grafiksemantik som native side-rendering; en ikke-understøttet side fejler sammenligningen i stedet for at give en identisk rapport

Afgrænset afvikling

Sammenlignings-options afgrænser traversal, dybde, objekter, dekodede streams, tekstforberedelse, resultatlager og renderede pixels; cancellation når traversal, teksteekstraktion og rendering

Hold begge dokumentinstanser i live og eksklusivt ejet under en Pascal-sammenligning; deres originale indholds- og ressource-options bevares ved succes, fejl og cancellation

Linux-ABI'en accepterer de seks lowercase mode-navne ovenfor og strenge options-members, der matcher Pascal-grænserne, plus dpi, colorTolerance, minimumSimilarity, maxChangedPixelRatio og colorSpace:rgb eller luminance

ABI-resultater er fuldt forberedt og afgrænsede inden synkron callback-publicering; same-handle-kald og modsat-ordnede samtidige kald bruger den eksisterende stabile låserækkefølge

Rapportfelter · Semantisk kontraktsammenligning · Native Linux C ABI