function SaveAsPdfUa(const FileName: string): Boolean; overload;
function SaveAsPdfUa(const FileName: string; const Options: TPdfUaSaveOptions): Boolean; overload;
ينفذ SaveAsPdfUa عملية SaveAs العادية أولًا، ثم يضيف فوق البايتات المحفوظة تحديثًا تزايديًا يرتقي بالملف إلى أرشيف PDF/UA-1 (ISO 14289-1:2014). وتحقن المعالجة اللاحقة أربع فئات من العلامات في الدفق المحفوظ
pdfuaid:part = 1) plus the matching pdfaExtension:schemas description, the mandatory dc:title entry (ISO 14289-1 §7.1), and bridged Info-dictionary fields (Author, Subject, Producer, Keywords, CreationDate, ModDate, etc.)./MarkInfo << /Marked true /Suspects false >> when the source catalog has no /MarkInfo entry (§7.1)./ViewerPreferences << /DisplayDocTitle true >> when the source has no /ViewerPreferences entry (§7.1)./Lang (xx) when the source has no /Lang and Options.Language supplies a BCP 47 tag (§7.2). The trailer also gets an /ID array (reused from FPDF_GetFileIdentifier when available, otherwise derived deterministically from the source bytes).The output stays byte-identical to the base SaveAs result up to the
end of the original PDF; only the incremental update is appended
Existing readers that don't understand PDF/UA still render the file
exactly as the regular SaveAs would. The two overloads differ only
in how the configuration is passed in: the file-name-only form uses
TPdfUaSaveOptions.Default with auto-population from
FPDF_GetMetaText / FPDF_GetFileIdentifier /
FPDFCatalog_GetLanguage, while the
TPdfUaSaveOptions form lets the caller override Title,
Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate,
Language, DocumentId, InstanceId, and the pdfuaid Part / Amd / Corr
identifiers.
Returns True on success. Returns False if
the base SaveAs failed or if the incremental update could not be
attached (PDF too short, invalid trailer, encrypted source).
SaveAs(..., saRemoveSecurity) first if needed.
// 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);
end;