PDFium Delphi Component Docs

SaveAsPdfUa Метод

Компонент: TPdf  ·  Модуль: PDFium
Сохраняет PDF/UA-1 по умолчанию или PDF/UA-2 при настройке через TPdfUaSaveOptions.PdfUa2

Syntax

function SaveAsPdfUa(const FileName: string): Boolean; overload;
function SaveAsPdfUa(const FileName: string; const Options: TPdfUaSaveOptions): Boolean; overload;

Description

SaveAsPdfUa сначала выполняет обычный SaveAs, а затем наслаивает поверх сохранённых байтов инкрементное обновление, повышающее файл до документа PDF/UA-1 или PDF/UA-2. Постобработка внедряет в сохранённый поток четыре класса маркеров:

Вывод побайтово совпадает с результатом базового 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 слишком короткий, недопустимый trailer, зашифрованный источник)

Remarks

Example

// 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;

See Also

SaveAsPdfUaToStream, ValidatePdfUa, PdfUaConformance, SaveAsPdfA, IsTagged