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
Truebetyder, at transaktionen blev accepteret, inklusive tilfældet ingen ændringer for et allerede overensstemmende dokumentFalsebetyder, at transaktionen rullede tilbage efter en grænsefejl, valideringsregression, exception eller en uopfyldtRequireFullConformance-politikReport.ValidationSucceededer det autoritative resultat for fuld overensstemmelse efter en committet reparation- Med standardindstillinger kan sikre reparationer committes, mens urelaterede usikre valideringsfund forbliver eksplicitte i
IssuesogFindings
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;