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

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;

APIs relacionadas