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 mode | JSON mode | Sammenlignet indhold |
|---|---|---|
| hcmPageCount | pagecount | Page tree-blad-antal |
| hcmPageText | pagetext | Sideantal og udtrukket Unicode-tekst |
| hcmObjectCount | objectcount | Sideantal og fysiske in-use cross-reference-objektantal |
| hcmRenderedImage | renderedimage | Sideantal, renderede dimensioner og native Cairo-pixels |
| hcmStructural | structural | Sideantal og normaliseret katalog-, informations- og utilgængelige objektgrafer |
| hcmFull | full | Side- 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