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
| Campo | Propósito |
|---|---|
Profile | Selecciona detección automática basada en metadatos, o validación base, de ingeniería o de archivos asociados |
MaxObjects | Acota el recorrido iterativo del grafo de objetos y por defecto vale 1.000.000 de objetos |
MaxIssues | Acota los diagnósticos retenidos y por defecto vale 1.024 incidencias |
MaxDecodedBytes | Acota los bytes acumulados decodificados de metadatos, ICC y content streams y por defecto vale 64 MiB |
MaxContentTokens | Acota los tokens acumulados del content stream y por defecto vale 4.000.000 de tokens |
CheckEmbeddedFonts | Comprueba las fuentes de renderizado buscando un programa de fuente incrustado |
CheckAnnotationAppearances | Comprueba las marcas de anotaciones y los streams de apariencia normal |
CheckOptionalContent | Comprueba los nombres y la unicidad de la configuración de contenido opcional |
CheckColourSpaces | Comprueba color de dispositivo pintado, perfiles ICC, output intents, valores por defecto, imágenes, shadings, formularios y grupos de transparencia |
CheckTransparency | Comprueba alfa pintado, soft masks, modos de fusión y cobertura del espacio de fusión a nivel de página |
CheckCompositeFonts | Comprueba descendientes Type 0, CIDSystemInfo, compatibilidad CMap y restricciones CIDToGIDMap |
CheckMetadataPackets | Comprueba 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