THotPDF.RepairPDFA4-metode

Kjører en avgrenset objektgraftransaksjon som utfører deterministisk PDF/A-4-normalisering, validerer resultatet, og enten committer hele settet med trygge reparasjoner eller gjenoppretter dokumentets opprinnelige tilstand

Deklarasjon

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-kontrakt

Grense for trygge reparasjoner

Metoden kan normalisere PDF 2.0-headeren, opprette en manglende trailer-ID, opprette eller reparere metadatastrømmer og ordbøker, kanonisere PDF/A-identifikasjon via namespace-URI mens lovlige RDF-prefikser bevares, fjerne forbudte Catalog-oppføringer, og fjerne alternative presentasjonsstrukturer

UTF-8 XMP-reparasjon fjerner forbudte packet-header-byte og kodingsattributter, bruker canonical PDF/A-identifikasjonsnamespace, skriver part=4 og rev=2020, og velger riktig base-, engineering- eller associated-file-konformitetsegenskap

Reparasjonspipelinen omskriver aldri content streams for sider eller annotasjoner, fonter, fargerom, transparens, bilder, grafikkoperatorer eller ekstrahert tekst

Rollback og revisjonssporbarhet

Grafsnapshotter dekker ordbokmutasjoner og metadatastrøm-byte, så en rollback gjenoppretter original header, trailer-tilstand, objektgraf, XMP-payload og sideinnhold

Findings-overloaden knytter reparasjonsaksjoner, status for utført, uløst, mislykket eller rullet tilbake, reparasjonstelling, stabile regelidentifikatorer, klausuler, objektstier, objektnumre og sidelokasjoner til resultatet

Budsjetter for objekter, mutasjoner, beholdte funn, dekodede byte og content-tokens hindrer ondsinnede filer i å gjøre reparasjonen eller valideringsportene til uavgrenset arbeid

Eksempel

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;

Relaterte API-er