TPdfUaSaveOptions.PdfUa2function 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). Трейлер також отримує масив /ID (повторно використовується з FPDF_GetFileIdentifier, якщо доступний, інакше детерміновано виводиться з байтів джерела).Результат побайтово збігається з базовим SaveAs до кінця
початкового PDF; додається лише інкрементне оновлення.
Проглядачі, які не розуміють PDF/UA, усе одно рендерять файл
точно так, як це зробив би звичайний SaveAs. Два перевантаження
відрізняються лише способом передавання конфігурації: форма лише
з іменем файлу використовує TPdfUaSaveOptions.Default
з автозаповненням із FPDF_GetMetaText /
FPDF_GetFileIdentifier /
FPDFCatalog_GetLanguage, тоді як форма
TPdfUaSaveOptions дозволяє викликачу перевизначити Title,
Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate,
Language, DocumentId, InstanceId та ідентифікатори pdfuaid Part, Revision,
Amd і Corr
TPdfUaSaveOptions.PdfUa2 обирає Part 2, подає типове
значення pdfuaid:rev 2024 і записує в каталог
/Version /2.0, тож джерело PDF 1.x із інкрементним
оновленням отримує PDF 2.0 як чинну версію
Повертає True у разі успіху. Повертає False,
якщо базовий SaveAs завершився невдало або якщо інкрементне оновлення
не вдалося додати (PDF надто короткий, недійсний трейлер, зашифроване
джерело).
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;