TPdfUaSaveOptions.PdfUa2، PDF/UA-2 را ذخیره میکندfunction SaveAsPdfUa(const FileName: string): Boolean; overload;
function SaveAsPdfUa(const FileName: string; const Options: TPdfUaSaveOptions): Boolean; overload;
SaveAsPdfUa ابتدا SaveAs معمولی را اجرا میکند و سپس یک بهروزرسانی افزایشی روی بایتهای ذخیرهشده لایهگذاری میکند که پرونده را به سند PDF/UA-1 یا PDF/UA-2 ارتقا میدهد. پسپردازش چهار دسته نشانگر را به جریان ذخیرهشده تزریق میکند:
pdfuaid:part = 1) بههمراه توصیف سازگار pdfaExtension:schemas، ورودی الزامی dc:title (ISO 14289-1 §7.1) و فیلدهای پلزدهٔ دیکشنری Info (Author، Subject، Producer، Keywords، CreationDate، ModDate و غیره) را اعلام میکند/MarkInfo << /Marked true /Suspects false >> وقتی کاتالوگ منبع ورودی /MarkInfo نداشته باشد (§7.1)/ViewerPreferences << /DisplayDocTitle true >> وقتی منبع ورودی /ViewerPreferences نداشته باشد (§7.1)/Lang (xx) وقتی منبع /Lang نداشته باشد و Options.Language یک برچسب BCP 47 فراهم کند (§7.2). trailer همچنین یک آرایهٔ /ID دریافت میکند (در صورت وجود از FPDF_GetFileIdentifier بازاستفاده میشود، در غیر این صورت بهصورت قطعی از بایتهای منبع مشتق میشود)خروجی تا پایان PDF اصلی بایتبهبایت با نتیجهٔ پایهٔ SaveAs یکسان میماند؛ تنها بهروزرسانی افزایشی الحاق میشود. خوانندههای موجود که PDF/UA را نمیفهمند، پرونده را دقیقاً همانطور که SaveAs معمولی رندر میکرد نمایش میدهند. دو overload تنها در نحوهٔ ارسال پیکربندی تفاوت دارند: شکل فقط-نام-پرونده از TPdfUaSaveOptions.Default با پر کردن خودکار از FPDF_GetMetaText / FPDF_GetFileIdentifier / FPDFCatalog_GetLanguage استفاده میکند، در حالی که شکل TPdfUaSaveOptions به فراخواننده اجازه میدهد Title، Author، Subject، Keywords، Creator، Producer، CreationDate، ModDate، Language، DocumentId، InstanceId و شناسههای Part، Revision، Amd و Corr مربوط به pdfuaid را بازنویسی کند
TPdfUaSaveOptions.PdfUa2 بخش 2 را انتخاب میکند، مقدار پیشفرض pdfuaid:rev یعنی 2024 را تأمین کرده و /Version /2.0 کاتالوگ را مینویسد تا منبع PDF 1.x بهروزرسانیشدهٔ افزایشی، PDF 2.0 را بهعنوان نسخهٔ مؤثر خود داشته باشد
در صورت موفقیت True برمیگرداند. اگر SaveAs پایه شکست بخورد یا بهروزرسانی افزایشی نتواند متصل شود False برمیگرداند (PDF بیش از حد کوتاه، trailer نامعتبر، منبع رمزگذاریشده)
SaveAs(..., saRemoveSecurity) را فراخوانی کنید
// 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;