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
Truebetyr at transaksjonen ble godtatt, inkludert tilfelle uten endringer for et dokument som allerede er konformtFalsebetyr at transaksjonen ble rullet tilbake etter en grenseoverskridelse, valideringsregresjon, unntak, eller en uoppfyltRequireFullConformance-policyReport.ValidationSucceededer det autoritative fullkonformitetsresultatet etter en committet reparasjon- Med standardalternativer kan trygge reparasjoner committes mens urelaterte utrygge valideringsfunn forblir eksplisitt oppført i
IssuesogFindings
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;