Semantička usporedba toka sadržaja
HPDFContentStream može normalizirati dekodirani PDF sadržaj u ograničene kanonske događaje i usporediti te događaje bez obrade bezazlenih izbora serijalizacije kao promjena
Deklaracije
function HPDFNormalizeContentStreamGraphicsState(
const Bytes: TBytes; out Canonical: TBytes;
out Statistics: THPDFContentSemanticStatistics;
NumberTolerance: Double = 1E-9;
MaxOperations: Integer = 1000000;
MaxCanonicalBytes: Int64 = 67108864
): boolean;
function HPDFCompareContentStreamsSemantic(
const Left, Right: TBytes;
out Info: THPDFContentSemanticCompareInfo;
NumberTolerance: Double = 1E-9;
MaxOperations: Integer = 1000000;
MaxCanonicalBytes: Int64 = 67108864
): boolean;
Normalizacija
- Brojevi se kvantiziraju prema toleranciji pozivatelja i emitiraju se pravopisom neovisnim o lokaciji
- Literalni i heksadecimalni nizovi uspoređuju se po dekodiranoj bajtnoj vrijednosti, dok nizovi zadržavaju tip i redoslijed stavki
- Postavljači stanja grafike i teksta ažuriraju efektivnu snimku, a redundantni postavljači ne stvaraju događaje
qiQodržavaju puni stog stanja, ali sami ne postaju događaji- Uzastopni operatori
cmmnože se u PDF redoslijedu, pa se ekvivalentne faktorizacije matrice uspoređuju jednako - Svaki zadržani operator nosi efektivnu matricu, liniju, boju, vanjsku grafiku i stanje teksta koja vrijedi na tom mjestu
- Ključevi inline slika normaliziraju se tokenizerom, a korisni sadržaji koriste SHA-256 identitete da bi se izbjeglo proširenje kanonskog toka
Dijagnostika i granice
THPDFContentSemanticStatistics izvještava o informacijama tokena, operacije, stanja operacije, redundantnog stanja, normaliziranog događaja, maksimalne dubine stoga, kanonskog bajta, pomaka pogreške, valjanosti i ograničenja. Usporedba također izvještava o prvom različitom normaliziranom događaju
Neispravni ugniježđeni operandi rječnika, nevaljana aritet operacija stanja, neusparena ili nezatvorena područja stanja grafike, zaostali operandi, prekoračenje operacije i prekoračenje kanonskog bajta ne uspijevaju zatvoreno i nikada ne izvještavaju o ekvivalenciji
Proslijedite dekodirane bajtove sadržaja. Dekodiranje filtera toka i usklađivanje naziva resursa preko različitih rječnika resursa ostaju odgovornost pozivatelja