Comparaison sémantique de flux de contenu

HPDFContentStream peut normaliser le contenu PDF décodé en événements canoniques bornés et comparer ces événements sans considérer les choix de sérialisation inoffensifs comme des modifications

Déclarations

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;

Normalisation

Diagnostics et limites

THPDFContentSemanticStatistics rapporte les informations de jetons, opérations, opérations d’état, états redondants, événements normalisés, profondeur maximale de pile, octets canoniques, décalage d’erreur, validité et limites. La comparaison rapporte aussi le premier événement normalisé différent

Les opérandes de dictionnaire imbriqué mal formées, arités invalides d’opérateurs d’état, étendues d’état graphique non appariées ou non fermées, opérandes traînantes, dépassement d’opérations et dépassement d’octets canoniques échouent de façon sûre et ne signalent jamais une équivalence

Passez des octets de contenu décodés. Le décodage des filtres de flux et la réconciliation des noms de ressources entre dictionnaires de ressources différents restent à la charge de l’appelant