THotPDF.RepairPDFA4 Method
Esegue una transazione object graph limitata che applica una normalizzazione PDF/A-4 deterministica, valida il risultato ed esegue il commit dell'intero set di riparazioni sicure oppure ripristina lo stato originale del documento
Dichiarazione
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;
Contratto di commit
Truesignifica che la transazione è stata accettata, incluso il caso senza modifiche per un documento già conformeFalsesignifica che la transazione ha eseguito il rollback dopo un superamento dei limiti, una regressione di validazione, un'eccezione o una policyRequireFullConformancenon soddisfattaReport.ValidationSucceededè il risultato autorevole di conformità completa dopo una riparazione di cui è stato eseguito il commit- Con le opzioni predefinite, le riparazioni sicure possono fare commit mentre finding di validazione unsafe non correlati restano espliciti in
IssueseFindings
Perimetro delle riparazioni sicure
Il metodo può normalizzare l'header PDF 2.0, creare un trailer ID mancante, creare o riparare metadata stream e dizionari, canonizzare l'identificazione PDF/A tramite namespace URI preservando qualsiasi prefisso RDF legale, rimuovere le voci Catalog vietate e rimuovere le strutture di presentazione alternativa
La riparazione XMP UTF-8 rimuove i byte vietati dell'header del packet e gli attributi di codifica, usa il namespace canonico di identificazione PDF/A, scrive part=4 e rev=2020 e seleziona la corretta proprietà di conformità base, engineering o associated-file
La pipeline di riparazione non riscrive mai i content stream di pagina o di annotazione, i font, gli spazi colore, la trasparenza, le immagini, gli operatori grafici o il testo estratto
Rollback e auditabilità
Gli snapshot del graph coprono le mutazioni dei dizionari e i byte dei metadata stream, quindi il rollback ripristina l'header originale, lo stato del trailer, l'object graph, il payload XMP e il contenuto delle pagine
L'overload con finding condiviso allega azioni di riparazione, stato applied, unresolved, failed o rolled-back, conteggi di riparazione, identificatori di regola stabili, clausole, percorsi di oggetti, numeri di oggetto e posizioni di pagina
I budget su oggetti, mutazioni, problemi trattenuti, byte decodificati e token di contenuto impediscono ai file avversari di trasformare la riparazione o i suoi gate di validazione in lavoro senza limiti
Esempio
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;