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

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;

APIs relacionadas