Comparación semántica de flujos de contenido

HPDFContentStream puede normalizar contenido PDF decodificado en eventos canónicos acotados y comparar esos eventos sin tratar las elecciones de serialización inofensivas como cambios

Declaraciones

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;

Normalización

Diagnósticos y límites

THPDFContentSemanticStatistics informa de token, operación, operación de estado, estado redundante, evento normalizado, profundidad máxima de pila, byte canónico, desplazamiento de error, validez e información de límites. La comparación también informa del primer evento normalizado que difiere

Los operandos de diccionario anidado malformados, la aridad no válida de operadores de estado, los ámbitos de estado gráfico sin emparejar o sin cerrar, los operandos finales, el desbordamiento de operaciones y el desbordamiento de bytes canónicos fallan de forma cerrada y nunca informan de equivalencia

Pase los bytes de contenido decodificados. La decodificación de filtros de flujo y la conciliación de nombres de recursos entre distintos diccionarios de recursos siguen siendo responsabilidad del llamador