Confronto Semantico dei Flussi di Contenuto

HPDFContentStream può normalizzare il contenuto PDF decodificato in eventi canonici delimitati e confrontare questi eventi senza trattare le scelte di serializzazione innocue come modifiche

Dichiarazioni

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;

Normalizzazione

Diagnostica e limiti

THPDFContentSemanticStatistics riporta le informazioni su token, operazione, operazione di stato, stato ridondante, evento normalizzato, profondità massima dello stack, byte canonici, offset di errore, validità e limite. Il confronto riporta anche il primo evento normalizzato diverso

Operandi di dizionario annidati non validi, arità non valida degli operatori di stato, ambiti di stato grafico non appaiati o non chiusi, operandi finali, overflow di operazioni e overflow di byte canonici falliscono chiudendosi e non riportano mai equivalenza

Passare i byte di contenuto decodificato. La decodifica dei filtri di flusso e la riconciliazione dei nomi di risorsa tra dizionari di risorse diversi restano responsabilità del chiamante