Sémantické porovnání obsahových streamů

HotPDF porovnává obsahové streamy PDF podle významu operátorů a operandů místo pouhého porovnání bajtůHPDFContentStream

Normalizace

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;

Normalizace

Diagnostika a meze

THPDFContentSemanticStatistics hlásí tokeny, operace, stavové operace, redundantní stavy, normalizované události, maximální hloubku zásobníku, kanonické bajty, chybový offset, platnost a limity. Porovnání navíc hlásí první odlišnou normalizovanou událost

Porovnání zohledňuje tokenizované operátory, grafický stav, odkazy na prostředky a ekvivalentní zápis čísel a řetězců

Výsledek uvádí první sémantickou odlišnost, její umístění a diagnostické informace použitelné pro regresní testy