THotPDF.ValidatePDFA4 Método

Validates a generated or loaded object graph against the supported PDF/A-4 base, PDF/A-4e engineering, or PDF/A-4f associated-file profile and returns stable structured diagnostics

Declaración

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Issues: THPDFPDFA4ValidationIssues): boolean; overload;

function ValidatePDFA4(
  const Options: THPDFPDFA4ValidationOptions;
  out Findings: THPDFComplianceFindings): boolean; overload;

Unidad

HPDFDoc

Tipos de perfil y gravedad

THPDFPDFA4Profile = (
  p4pAutomatic,
  p4pBase,
  p4pEngineering,
  p4pAssociatedFiles
);

THPDFPDFA4IssueSeverity = (
  p4isWarning,
  p4isError
);

THPDFPDFA4Profile selecciona la inferencia de metadatos o un perfil de conformidad explícito, mientras que THPDFPDFA4IssueSeverity distingue los diagnósticos informativos de los errores de validación

Opciones

CampoPropósito
ProfileSelecciona detección automática basada en metadatos, o validación base, de ingeniería o de archivos asociados
MaxObjectsAcota el recorrido iterativo del grafo de objetos y por defecto vale 1.000.000 de objetos
MaxIssuesAcota los diagnósticos retenidos y por defecto vale 1.024 incidencias
MaxDecodedBytesAcota los bytes acumulados decodificados de metadatos, ICC y content streams y por defecto vale 64 MiB
MaxContentTokensAcota los tokens acumulados del content stream y por defecto vale 4.000.000 de tokens
CheckEmbeddedFontsComprueba las fuentes de renderizado buscando un programa de fuente incrustado
CheckAnnotationAppearancesComprueba las marcas de anotaciones y los streams de apariencia normal
CheckOptionalContentComprueba los nombres y la unicidad de la configuración de contenido opcional
CheckColourSpacesComprueba color de dispositivo pintado, perfiles ICC, output intents, valores por defecto, imágenes, shadings, formularios y grupos de transparencia
CheckTransparencyComprueba alfa pintado, soft masks, modos de fusión y cobertura del espacio de fusión a nivel de página
CheckCompositeFontsComprueba descendientes Type 0, CIDSystemInfo, compatibilidad CMap y restricciones CIDToGIDMap
CheckMetadataPacketsComprueba cada stream de metadatos contra las restricciones de UTF-8, cabecera de paquete, envoltorio RDF e identificación PDF/A

Diagnóstico

Cada THPDFPDFA4ValidationIssue informa de la gravedad, un código estable con espacio de nombres, la cláusula aplicable de ISO 19005-4, la ruta del objeto, el número de objeto, el índice de página basado en cero cuando se conoce y un mensaje legible por personas

La sobrecarga THPDFComplianceFindings expone el mismo recorrido a través del modelo compartido de hallazgos legibles por máquina con un perfil PDF/A-4 y estado de reparación crsNotAttempted

El validador cubre la identificación PDF 2.0, el ID del trailer y el estado de cifrado, cada paquete de metadatos, las restricciones de Info, las cabeceras ICC y los recuentos de canales, las intenciones de salida de documento y página, el color de dispositivo pintado, el estado de gráficos heredado a través de arrays de content streams y Form XObjects anidados, máscaras de imagen, sombreados, transparencia, incrustación de fuentes renderizadas, relaciones de fuentes compuestas, anotaciones y apariencias, restricciones AcroForm, acciones y acciones adicionales, archivos asociados, contenido opcional, referencias externas y reglas específicas de perfil para 3D o adjuntos

Los hallazgos de color y transparencia se basan en operadores de pintado y no solo en operadores de asignación de color; la tokenización del contenido y la reutilización de streams decodificados se cachean mientras cada invocación evalúa aún el estado de gráficos heredado para su propio contexto de página o Form

Los límites de bytes decodificados, tokens de contenido, objetos e incidencias retenidas fallan de forma segura con hallazgos estables pdfa4.validation.* antes de que pueda continuar el trabajo sin acotar

Ejemplo

var
  Options: THPDFPDFA4ValidationOptions;
  Issues: THPDFPDFA4ValidationIssues;
begin
  Options := THPDFPDFA4ValidationOptions.Default;
  Options.Profile := p4pAutomatic;
  if not PDF.ValidatePDFA4(Options, Issues) then
    raise Exception.CreateFmt('%s at %s',
      [String(Issues[0].Code), String(Issues[0].Path)]);
end;

Comportamiento de generación

EndDoc ejecuta automáticamente el validador para '4', '4E' y '4F' y lanza antes de serializar cuando queda algún error

La generación PDF/A-4 omite la entrada Info del trailer, PDF/A-4f siempre crea el árbol de nombres EmbeddedFiles requerido, y las anotaciones de archivo adjunto solo las acepta PDF/A-4f, donde el stream incrustado, el Filespec, la relación AF, el array AF del Catalog y el árbol de nombres se emiten juntos

APIs relacionadas