Semantischer Vergleich von Inhalts-Streams

HPDFContentStream kann dekodierten PDF-Inhalt in begrenzte kanonische Ereignisse normalisieren und diese vergleichen, ohne harmlose Serialisierungsentscheidungen als Änderungen zu behandeln

Deklarationen

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;

Normalisierung

Diagnosen und Grenzen

THPDFContentSemanticStatistics meldet Token-, Operations-, Zustandsoperations-, redundante Zustands-, normalisierte Ereignis-, maximale Stapeltiefen-, kanonische Byte-, Fehleroffset-, Gültigkeits- und Grenzinformationen. Der Vergleich meldet außerdem das erste abweichende normalisierte Ereignis

Fehlerhafte verschachtelte Dictionary-Operanden, ungültige Stelligkeit von Zustandsoperatoren, nicht passende oder offene Grafikzustandsbereiche, nachfolgende Operanden, Operationsüberlauf und Überlauf kanonischer Bytes schlagen geschlossen fehl und melden nie Gleichwertigkeit

Übergeben Sie dekodierte Inhaltsbytes. Die Dekodierung von Streamfiltern und der Abgleich von Ressourcennamen über verschiedene Ressourcen-Dictionaries hinweg bleibt Aufgabe des Aufrufers