Informes de comprobación previa

Cumplimiento, Inspección de documentos, Automatización

Selección del perfil de lector PDF/UA

Las comprobaciones PDF/UA seleccionan la parte 2 cuando XMP identifica pdfuaid:part=2 y en caso contrario mantienen las comprobaciones de la parte 1; las comprobaciones heredadas de PDF/UA-1 descritas aquí no se dan por aplicables a la parte 2

El perfil de PDF/UA-2 implementa comprobaciones básicas de identificación, espacios de nombres, roles y estructura; los informes estructurados utilizan PDF/UA-2 e ISO 14289-2 y revelan fullCertification=false y el ámbito sin verificar

Utilice CheckFilePDFUACompliance o RunPDFUAValidationPipelineTask para forzar una parte de destino, y GetPDFUAReadValidationCoverageJSON para inspeccionar los límites de capacidades

Descripción general

PDF Library for Delphi puede ejecutar sus comprobaciones integradas de conformidad de archivos PDF/A y PDF/UA-1 sobre un PDF externo y convertir el resultado en una salida de informe reutilizable. Utilice las API de informes cuando una aplicación o un proceso de compilación necesite los mismos diagnósticos que CheckFileCompliance, pero no quiera gestionar directamente identificadores de listas de cadenas

La canalización de informes está organizada deliberadamente en capas. CheckFileCompliance sigue siendo la API de bajo nivel que devuelve identificadores de listas de incidencias. CreatePreflightReport da formato a las comprobaciones seleccionadas en un cuerpo estable de texto sin formato. CreatePreflightReportEx convierte ese mismo informe de texto en texto, JSON, HTML o CSV para que todos los formatos compartan el mismo estado de aprobado o fallido y el mismo número de incidencias

API de la biblioteca

CheckFileComplianceEjecuta una comprobación de conformidad seleccionada sobre un archivo PDF y devuelve 0 si se supera o un StringListID que contiene las líneas de incidencias.
CreatePreflightReportEjecuta las comprobaciones PDF/A, PDF/UA-1 o ambas y devuelve un informe de texto sin formato con metadatos de cabecera, una sección por comprobación y un resumen final.
CreatePreflightReportExDevuelve el mismo informe en formato de texto (0), JSON (1), HTML (2) o CSV (3). Los valores de formato desconocidos utilizan texto.
SavePreflightReportEscribe el informe de texto sin formato como UTF-8 y crea el directorio padre cuando es necesario.
SavePreflightReportExEscribe un informe de texto, JSON, HTML o CSV como UTF-8 y crea el directorio padre cuando es necesario.
ComparePreflightReportsCompara dos informes de texto sin formato, ignora las líneas volátiles de marca de tiempo Generated: y devuelve una diferencia compacta solo cuando cambia contenido estable.

Contrato de formato

TextEl cuerpo canónico del informe. Contiene Generated, Input, Checks, Issue mode, una sección por cada comprobación seleccionada y un bloque Summary con Total issues y Result.
JSONUn único objeto con title, generated, input, checks, issueMode, sections y summary. Cada sección tiene un nombre, un estado y una matriz de cadenas de incidencias.
HTMLUn documento HTML UTF-8 independiente. El informe de texto se escapa como HTML y se muestra dentro de un bloque preformateado, por lo que su contenido es visible sin interpretarse como marcado.
CSVLas filas utilizan las columnas fijas kind,section,status,code,message. Las filas meta contienen campos de cabecera, las filas check contienen el estado PASS/FAIL de la sección, las filas issue separan los códigos numéricos de incidencia de los mensajes y las filas summary contienen los totales finales.

Selección de conformidad

Las API de informes utilizan una máscara de bits para ComplianceTests: 1 selecciona PDF/A, 2 selecciona PDF/UA-1 y 3 selecciona ambos. Si se pasa 0, también se ejecutan ambas comprobaciones. Options utiliza actualmente el bit 1 para detener cada comprobación seleccionada tras su primera incidencia; pase 0 para recopilar todas las incidencias notificadas

Demostración de línea de comandos

La demostración de consola PreflightReport para Delphi muestra el flujo de trabajo de informes sin añadir una interfaz específica de la aplicación. Puede validar un único PDF, generar una salida con formato, comparar un nuevo informe de texto con una referencia o procesar un directorio por lotes

PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt"
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.json" --json
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.csv" --format csv
PreflightReport.exe --input "C:\PDFs\invoice.pdf" --output "C:\Reports\invoice.preflight.txt" --compare "C:\Baselines\invoice.preflight.txt"
PreflightReport.exe --input-dir "C:\PDFs" --output-dir "C:\Reports" --recursive --format html

El modo de archivo único devuelve el código de salida 0 cuando las comprobaciones seleccionadas no notifican ninguna incidencia, 1 para errores de línea de comandos o de ejecución y 2 cuando se notifica alguna incidencia o difiere la comparación con la referencia. El modo de directorio escribe un archivo <basename>.preflight.<ext> por cada PDF y añade un archivo preflight-summary.csv con la ruta de origen, el estado de aprobado o fallido, el número de incidencias y la ruta del informe

Notas de comparación

ComparePreflightReports está definido para informes de texto sin formato. Debe recibir el informe de texto de referencia y el informe de texto recién generado, aunque la salida destinada a las personas para la misma ejecución sea JSON, HTML o CSV. El comparador normaliza las líneas Generated: porque las marcas de tiempo cambian en cada ejecución; las demás líneas estables se comparan en orden con una pequeña ventana de anticipación para que las diferencias de inserción y eliminación sean legibles

Véase también

CheckFileCompliance, CreatePreflightReport, CreatePreflightReportEx, SavePreflightReport, SavePreflightReportEx, ComparePreflightReports, GetPDFUADiagnostics