THotPDF.RepairPDFA4-Methode

Führt eine begrenzte Objektgraph-Transaktion aus, die deterministische PDF/A-4-Normalisierung anwendet, das Ergebnis validiert und entweder den vollständigen sicheren Reparatursatz committet oder den ursprünglichen Dokumentzustand wiederherstellt

Deklaration

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;

Commit-Vertrag

Grenze sicherer Reparaturen

Die Methode kann den PDF-2.0-Header normalisieren, eine fehlende Trailer-ID anlegen, Metadaten-Streams und Dictionarys erzeugen oder reparieren, die PDF/A-Identifikation über Namespace-URI kanonisieren und dabei jedes legale RDF-Präfix bewahren, verbotene Catalog-Einträge entfernen und Alternate-Presentation-Strukturen entfernen

Die UTF-8-XMP-Reparatur entfernt verbotene Packet-Header-Byte- und Encoding-Attribute, verwendet den kanonischen PDF/A-Identifikations-Namespace, schreibt part=4 und rev=2020 und wählt die richtige Base-, Engineering- oder Associated-File-Conformance-Eigenschaft

Die Reparatur-Pipeline schreibt niemals Seiten- oder Annotations-Content-Streams, Fonts, Farbräume, Transparenz, Bilder, Grafikoperatoren oder extrahierten Text um

Rollback und Auditierbarkeit

Graph-Snapshots decken Dictionary-Mutationen und Metadaten-Stream-Bytes ab, sodass ein Rollback den ursprünglichen Header, den Trailer-Zustand, den Objektgraphen, die XMP-Payload und den Seiteninhalt wiederherstellt

Der Finding-Overload mit gemeinsamer Struktur hängt Reparaturaktionen, den Status applied, unresolved, failed oder rolled back, Reparaturzähler, stabile Regel-Identifikatoren, Klauseln, Objektpfade, Objektnummern und Seitenpositionen an

Objekt-, Mutations-, zurückbehaltene-Issue-, dekodierte-Byte- und Content-Token-Budgets verhindern, dass feindliche Dateien die Reparatur oder ihre Validierungstore in unbegrenzte Arbeit verwandeln

Beispiel

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;

Verwandte APIs