TPdfUaSaveOptions.PdfUa2function SaveAsPdfUa(const FileName: string): Boolean; overload;
function SaveAsPdfUa(const FileName: string; const Options: TPdfUaSaveOptions): Boolean; overload;
SaveAsPdfUa esegue prima il normale SaveAs, quindi sovrappone ai byte salvati un aggiornamento incrementale che promuove il file a documento PDF/UA-1 o PDF/UA-2. La post-elaborazione inietta quattro classi di marcatori nello stream salvato:
pdfuaid:part = 1) più la corrispondente descrizione pdfaExtension:schemas, la voce obbligatoria dc:title (ISO 14289-1 §7.1) e i campi del dizionario Info collegati (Author, Subject, Producer, Keywords, CreationDate, ModDate, ecc.)/MarkInfo << /Marked true /Suspects false >> quando il catalogo di origine non ha una voce /MarkInfo (§7.1)/ViewerPreferences << /DisplayDocTitle true >> quando l'origine non ha una voce /ViewerPreferences (§7.1)/Lang (xx) quando l'origine non ha /Lang e Options.Language fornisce un tag BCP 47 (§7.2). Il trailer riceve anche un array /ID (riutilizzato da FPDF_GetFileIdentifier quando disponibile, altrimenti derivato in modo deterministico dai byte della sorgente)L'output rimane byte-identico al risultato del SaveAs base fino alla
fine del PDF originale; viene aggiunto solo l'aggiornamento incrementale
I lettori esistenti che non comprendono PDF/UA rendono comunque il file
esattamente come farebbe il normale SaveAs. I due overload differiscono
solo nel modo in cui viene passata la configurazione: la forma con il
solo nome file usa TPdfUaSaveOptions.Default con
popolamento automatico da FPDF_GetMetaText /
FPDF_GetFileIdentifier /
FPDFCatalog_GetLanguage, mentre la forma con
TPdfUaSaveOptions consente al chiamante di sostituire
Title, Author, Subject, Keywords, Creator, Producer, CreationDate,
ModDate, Language, DocumentId, InstanceId e gli identificatori pdfuaid
Part, Revision, Amd e Corr
TPdfUaSaveOptions.PdfUa2 seleziona la Parte 2, fornisce
il valore predefinito pdfuaid:rev 2024 e
scrive il catalogo /Version /2.0 così che una sorgente
PDF 1.x aggiornata in modo incrementale abbia PDF 2.0 come versione
effettiva
Restituisce True in caso di successo. Restituisce
False se il SaveAs base è fallito o se l'aggiornamento
incrementale non ha potuto essere allegato (PDF troppo corto, trailer
non valido, sorgente cifrata)
SaveAs(..., saRemoveSecurity) se necessario
// Simple PDF/UA-1 output, options auto-populated from the document
if Pdf1.SaveAsPdfUa('C:\Report.pdfua.pdf') then
ShowMessage('Saved PDF/UA-1');
// With explicit options (Title overridden, language explicit)
var
Opts: TPdfUaSaveOptions;
begin
Opts := TPdfUaSaveOptions.Default;
Opts.DocumentTitle := 'Quarterly Report Q3 2026';
Opts.Language := 'en-US';
Pdf1.SaveAsPdfUa('C:\Report.q3.pdfua.pdf', Opts);
// PDF/UA-2 output based on ISO 32000-2
Opts := TPdfUaSaveOptions.PdfUa2;
Opts.DocumentTitle := 'Accessible PDF 2.0 report';
Opts.Language := 'en-US';
Pdf1.SaveAsPdfUa('C:\Report.pdfua2.pdf', Opts);
end;