Método THotPDF.RepairPDFA4
Ejecuta una transacción acotada del grafo de objetos que aplica 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 commit
Truesignifica que la transacción fue aceptada, incluido el caso sin cambios de un documento ya conformeFalsesignifica que la transacción hizo rollback después de un fallo de límite, una regresión de validación, una excepción o una políticaRequireFullConformanceno cumplidaReport.ValidationSucceededes el resultado de conformidad total autoritativo después de una reparación confirmada- Con opciones predeterminadas, las reparaciones seguras pueden confirmarse mientras hallazgos de validación inseguros no relacionados permanecen explícitos en
IssuesyFindings
Límite de reparación segura
El método puede normalizar el header PDF 2.0, crear un trailer ID faltante, crear o reparar streams de metadatos y diccionarios, canonicalizar la identificación PDF/A por URI de namespace preservando cualquier prefijo RDF legal, eliminar entradas prohibidas del Catalog y eliminar estructuras de presentación alternativa
La reparación de XMP UTF-8 elimina atributos prohibidos de byte de packet header y de codificación, usa el namespace canónico de identificación PDF/A, escribe part=4 y rev=2020 y selecciona la propiedad de conformidad correcta entre base, engineering o associated-file
El pipeline de reparación nunca reescribe content streams de página o de anotación, fuentes, espacios de color, transparencia, imágenes, operadores gráficos ni texto extraído
Rollback y auditabilidad
Los snapshots del grafo cubren mutaciones de diccionarios y bytes del stream de metadatos, así que el rollback restaura el header original, el estado del trailer, el grafo de objetos, el payload XMP y el contenido de página
La sobrecarga con hallazgos compartidos adjunta acciones de reparación, estado aplicado, sin resolver, fallido o revertido, conteos de reparación, identificadores de regla estables, cláusulas, rutas de objetos, números de objeto y ubicaciones de página
Los presupuestos de objetos, mutaciones, issues retenidos, bytes decodificados y tokens de contenido evitan que archivos maliciosos conviertan la reparación o sus etapas 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;