Método THotPDF.RepairPDFA4
Ejecuta una transacción acotada sobre el grafo de objetos que aplica una normalización PDF/A-4 determinista, valida el resultado y o bien confirma el conjunto completo de reparaciones seguras o restaura el estado original del documento
Declaración
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function RepairPDFA4(
const Options: THPDFPDFA4RepairOptions;
out Report: THPDFPDFA4RepairReport;
out Issues: THPDFPDFA4ValidationIssues;
out Findings: THPDFComplianceFindings): boolean; overload;
Contrato de confirmación
Truesignifica que la transacción se aceptó, incluido el caso sin cambios de un documento que ya era conformeFalsesignifica que la transacción se deshizo tras un fallo de límite, una regresión de validación, una excepción o una políticaRequireFullConformanceincumplidaReport.ValidationSucceededes el resultado autoritativo de conformidad completa tras una reparación confirmada- Con las opciones por defecto, las reparaciones seguras pueden confirmarse mientras hallazgos de validación inseguros no relacionados siguen quedando explícitos en
IssuesyFindings
Límite de reparación segura
El método puede normalizar la cabecera PDF 2.0, crear un ID de trailer ausente, crear o reparar metadata streams y diccionarios, canonicalizar la identificación PDF/A por URI de namespace conservando cualquier prefijo RDF legal, eliminar entradas prohibidas del Catalog y eliminar estructuras de presentación alternativa
La reparación de XMP UTF-8 elimina los bytes y atributos de codificación prohibidos de la cabecera de paquete, usa el namespace canónico de identificación PDF/A, escribe part=4 y rev=2020, y selecciona la propiedad de conformidad correcta base, de ingeniería o de associated file
El pipeline de reparación nunca reescribe content streams de páginas o anotaciones, fuentes, espacios de color, transparencia, imágenes, operadores gráficos ni texto extraído
Rollback y auditabilidad
Las instantáneas del grafo cubren las mutaciones de diccionarios y los bytes de los metadata streams, de modo que el rollback restaura la cabecera original, el estado del trailer, el grafo de objetos, el payload XMP y el contenido de las páginas
El overload con findings compartidos adjunta las acciones de reparación, el estado aplicado, sin resolver, fallido o deshecho, los recuentos de reparación, identificadores de regla estables, cláusulas, rutas de objeto, números de objeto y ubicaciones de página
Los presupuestos de objetos, mutaciones, problemas retenidos, bytes decodificados y tokens de contenido impiden que ficheros maliciosos conviertan la reparación o sus puertas de validación en trabajo sin límite
Ejemplo
var
Options: THPDFPDFA4RepairOptions;
Report: THPDFPDFA4RepairReport;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4RepairOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.RepairPDFA4(Options, Report, Issues) then
raise Exception.Create('PDF/A-4 repair rolled back');
if not Report.ValidationSucceeded then
LogRemainingPDFA4Issues(Issues);
end;