SetPDFAMode

Свойства документа, Соответствие стандартам

Описание

Включает режим соответствия PDF/A для выбранного документа. Один вызов выполняет всю настройку уровня документа, требуемую выбранной частью и уровнем соответствия PDF/A: версия PDF повышается до необходимого минимума, при выборе уровня соответствия структурированного PDF (A) записывается /MarkInfo, в каталог добавляется выходное намерение (ICC-профиль sRGB для DeviceRGB), записываются записи XMP pdfaid:part/pdfaid:conformance. Библиотека также включает защитник соответствия на стороне генерации, отвергающий последующие вызовы, которые выдали бы содержимое, запрещенное выбранной частью (см. Remarks)

Вызовите один раз на свежесозданном документе и до добавления любого содержимого. Чтобы проверить существующий файл PDF/A, созданный этой или любой другой библиотекой, используйте CheckFileCompliance с ComplianceTest = 1

Синтаксис

Delphi

Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;

ActiveX

Function PDFlib::SetPDFAMode(NewMode As Long) As Long

DLL

int DLSetPDFAMode(int InstanceID, int NewMode);

Параметры

NewModeРежим соответствия PDF/A, который нужно активировать. Каждый режим определяется частью PDF/A (1, 2, 3 или 4 — ISO 19005-1/-2/-3/-4) и уровнем соответствия (B — базовое визуальное воспроизведение, A — доступность тегированного PDF).

0 — Отключает режим PDF/A (по умолчанию).
1 — PDF/A-1a (ISO 19005-1 Level A). PDF 1.4. Требуется тегированный PDF.
2 — PDF/A-1b (ISO 19005-1 Level B). PDF 1.4. Только визуальное воспроизведение.
3 — PDF/A-2b (ISO 19005-2 Level B). PDF 1.7. Визуальное воспроизведение; разрешены прозрачность и слои.
4 — PDF/A-2a (ISO 19005-2 Level A). PDF 1.7. Требуется тегированный PDF.
5 — PDF/A-3b (ISO 19005-3 Level B). PDF 1.7. Как PDF/A-2b, но допускает произвольные встроенные файлы.
6 — PDF/A-3a (ISO 19005-3 Level A). PDF 1.7. Как PDF/A-2a, но допускает произвольные встроенные файлы.
7 — PDF/A-3u (ISO 19005-3 Level U). PDF 1.7. Как PDF/A-3b, но декларирует, что текст должен иметь отображения Unicode.
8 — PDF/A-2u (ISO 19005-2 Level U). PDF 1.7. Как PDF/A-2b, но декларирует, что текст должен иметь отображения Unicode; встроенные файлы остаются запрещены.
9 — PDF/A-4 (ISO 19005-4). PDF 2.0. Идентифицируется частью и годом редакции, а не уровнем соответствия; тексту нужны отображения Unicode, тегирование не обязательно.
10 — PDF/A-4e (ISO 19005-4). PDF 2.0. Как PDF/A-4, дополнительно разрешает 3D и мультимедиа для инженерных документов.
11 — PDF/A-4f (ISO 19005-4). PDF 2.0. Как PDF/A-4, дополнительно разрешает встроенный файл любого формата.

Возвращаемые значения

0Сбой — не открыт ни один документ, либо NewMode вне диапазона 0–7.
1PDF/A mode activated successfully.

Примечания

Выбранный режим управляет защитой соответствия на стороне генерации: после активации библиотека отклоняет или переписывает последующие вызовы, которые выдали бы содержимое, запрещённое выбранной частью, согласно ISO 19005:

CMYK / Separation / Shader colorsБлокируется в любом режиме PDF/A (1–7) — документ настраивается с выходным намерением sRGB, и использовать можно только цвета, совместимые с классом устройства этого выходного намерения.
EncryptionЗаблокировано во всех режимах PDF/A. Задайте режим до вызова любого API, связанного с шифрованием
Transparency / blend modes / page transparency groupsБлокируется в режимах 1 и 2 (PDF/A-1 запрещает прозрачность). Разрешается в режимах 3–7 (PDF/A-2/3 разрешают прозрачность).
JavaScript actionsБлокируется в любом режиме PDF/A — ISO 19005-1 §6.6.1 запрещает JavaScript, и этот запрет перенесён в PDF/A-2/3.
Embedded files / file attachmentsБлокируется в режимах 1–4 (PDF/A-1 запрещает; PDF/A-2 допускает лишь соответствующие PDF/A встроенные PDF, чего библиотека не проверяет). Разрешается в режимах 5, 6 и 7 — PDF/A-3 прямо разрешает встроенные файлы любого MIME-типа через ассоциацию AFRelationship.

Требуемое содержимое структурированного PDF (структура заголовков, alt-текст у фигур, атрибуты scope таблиц, записи RoleMap для пользовательских типов) — ответственность вызывающего для уровней a (режимы 1, 4, 6). Используйте BeginTag, BeginArtifact, AddRoleMap и сеттеры структурных элементов, чтобы построить дерево структуры. Вызовите GetPDFUADiagnostics перед сохранением, чтобы выявить самые частые проблемы структурированного PDF. Для уровня u (режим 7) убедитесь, что ресурсы шрифтов документа дают отображения Unicode для всего отрисовываемого текста

PDF/A и PDF/UA можно включить на одном документе. Сначала активируйте SetPDFAMode (части 1a/2a/3a уже подразумевают структурированный PDF), затем вызовите SetPDFUAMode, чтобы добавить специфичную для PDF/UA настройку каталога (DisplayDocTitle, pdfuaid:part, автоматический /Tabs /S)

Пример

// PDF/A-1b — minimum-effort archival document
PDF.NewDocument;
PDF.SetPDFAMode(2);                              // PDF/A-1b
PDF.SetDocumentInfo('Title', 'Quarterly Report Q1 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.SetFontSize(12);
PDF.PrintText(50, 750, 'Quarterly Report — Q1 2026');
PDF.SaveToFile('Q1-Report-PDFA1b.pdf');

// PDF/A-3a — tagged report with an embedded source spreadsheet
PDF.NewDocument;
PDF.SetPDFAMode(6);                              // PDF/A-3a
PDF.SetPDFUAMode('en-US');                       // Optional: also satisfy PDF/UA-1
PDF.SetDocumentInfo('Title', 'Sales Analysis 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.BeginTag('H1', '', '');
PDF.PrintText(50, 750, 'Sales Analysis');
PDF.EndTag;
PDF.BeginTag('P', '', '');
PDF.PrintText(50, 720, 'See attached spreadsheet for source data.');
PDF.EndTag;
PDF.EmbedFile('Source data', 'data.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
PDF.SaveToFile('Sales-PDFA3a.pdf');

См. также

CheckFileCompliance, SetPDFUAMode, SetMarkInfo, EmbedFile, BeginTag, GetPDFUADiagnostics, SetInformation