THotPDF.RepairPDFA4 Method

Kører en afgrænset objektgraftransaktion, der anvender deterministisk PDF/A-4-normalisering, validerer resultatet og enten committer det komplette sæt af sikre reparationer eller gendanner dokumentets oprindelige tilstand

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

Grænsen for sikre reparationer

Metoden kan normalisere PDF 2.0-headeren, oprette et manglende trailer-ID, oprette eller reparere metadatastrømme og ordbøger, kanonisere PDF/A-identifikation efter namespace-URI, mens enhver lovlig RDF-præfiks bevares, fjerne forbudte Catalog-poster og fjerne strukturer til alternativ præsentation

UTF-8 XMP-reparation fjerner forbudte packet-header-byte og kodningsattributter, bruger det kanoniske PDF/A-identifikations-namespace, skriver part=4 og rev=2020 og vælger den korrekte base-, engineering- eller associated-file-overensstemmelsesegenskab

Reparationspipelinen omskriver aldrig side- eller annotationsindholdsstrømme, fonte, farverum, transparency, billeder, grafikoperatorer eller udtrukket tekst

Rollback og sporbarhed

Graf-snapshots dækker ordbogsmutationer og metadatastrøm-byte, så rollback gendanner den oprindelige header, trailer-tilstand, objektgraf, XMP-payload og sideindhold

Overloadet med delt findings-output tilknytter reparationshandlinger, anvendt-, uafklaret-, fejlet- eller rollback-status, reparationsantal, stabile regel-id'er, klausuler, objektstier, objektnumre og sidelokationer

Budgetter for objekter, mutationer, fastholdte problemer, afkodede byte og indholdstokens forhindrer fjendtlige filer i at gøre reparationen eller dens valideringsporte til ubegrænset arbejde

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;

Relaterede API'er