Перейти к содержимому

Обзор соответствия: что создаёт NextPDF и кто определяет соответствие

Утверждение о границе. Поддержка профиля не является соответствием; решение о соответствии выносит независимый валидатор.

На этой странице перечислены стандартные профили, на которые ориентируется NextPDF Core. Каждая страница этого раздела следует одному правилу из стандартов: библиотека создаёт результат, предназначенный для соответствия профилю, а независимый валидатор решает, действительно ли конкретный файл Portable Document Format (PDF) ему соответствует. Таким валидатором может быть veraPDF, средство проверки PDF/UA, валидатор электронных счетов на основе Schematron или принимающая сторона. Для PDF/A стандарт ISO 19005-4 §6.7.3 явно проводит эту границу: маркеры pdfaid:part/pdfaid:rev обозначают намерение создателя; они не определяют соответствие. Решение принимается по пункту стандарта о соответствии — в процессе за пределами создающей библиотеки.

NextPDF не заявляет о соответствии. Он создаёт структурные элементы, требуемые профилем. Если профиль недоступен из-за ограничения, NextPDF сразу завершается ошибкой на границе API, поэтому отсутствующая возможность проявляется как явная ошибка, а не как незаметно несоответствующий файл.

Окно терминала
composer require nextpdf/core:^3

Для некоторых профилей ниже требуется пакет Premium nextpdf/pro; на каждой соответствующей странице это указано. Core предоставляет дискриминатор соответствия (NextPDF\Conformance\ConformanceMode) и валидаторы потока байтов в NextPDF\Compliance. Путь создания OutputIntent / International Color Consortium (ICC) / Extensible Metadata Platform (XMP) для архивных профилей поставляется в nextpdf/pro.

NextPDF направляет документ к контракту соответствия через один типизированный дискриминатор — NextPDF\Conformance\ConformanceMode. Это перечисление — источник истины для контракта ISO, который должен соблюдать модуль записи. У него есть варианты Plain, PdfUa1, PdfUa2, PdfA2, PdfA3/PdfA3b/PdfA3u и PdfA4/PdfA4e/PdfA4f. Модуль записи читает режим и создаёт требуемую структуру; он никогда не устанавливает флаг, заявляющий, что файл соответствует.

Для всех страниц этого раздела действуют три границы:

  • Поддержка ≠ соответствие. Создание требуемых профилем метаданных — это возможность, а не вердикт.
  • Проверка ≠ сертификация. Отчёт валидатора без ошибок — это подтверждение, а не сертификат.
  • Протестированный профиль ≠ сертификация. Тесты NextPDF подтверждают, что созданные байты соответствуют процитированным пунктам; это не аккредитованный аудит.

Точки входа соответствия в NextPDF\Core\Document:

МетодДействиеУровень
enablePdfA(?object $version = null)Настраивает документ на вариант PDF/A ConformanceMode (по умолчанию PdfA4); планирует OutputIntent + ICC + XMP при вызове save(). Выбрасывает InvalidConfigException, если nextpdf/pro отсутствует.API в Core, движок в Premium
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null)Устанавливает ConformanceMode::PdfUa2, подключает генератор тегированного содержимого и проверяет языковой тег по политике.Core (базовый уровень)
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$doc = Document::createStandalone();
$doc->enableTaggedPdf('en'); // ConformanceMode::PdfUa2
$doc->setTitle('Conformance index sample');
$doc->writeHtml('<h1>Hello</h1><p>Tagged content.</p>');
$doc->save(getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/out.pdf');

Неприменимо. Страницы отдельных профилей содержат исполняемые производственные примеры; эта страница-указатель служит для навигации.

  • Эта страница-указатель не заявляет о каком-либо поведении. Таблицы проверенных утверждений содержатся на страницах отдельных профилей. Эта страница излагает только определяющее правило.
  • Имя профиля в метаданных — это утверждение, а не доказательство. Программа просмотра, обнаружившая pdfaid:part=4, видит намерение создателя, а не доказательство соответствия файла.
  • Ограничение возможностей работает по принципу немедленного отказа. При установке только Core вызов архивного пути Premium приводит к InvalidConfigException с сообщением об обновлении, а не к незаметно несоответствующему файлу.

Неприменимо к странице-указателю. Страницы отдельных профилей объявляют собственные бюджеты.

Профили соответствия ограничивают структуру, а не защищают от угроз. PDF/A-4 запрещает шифрование; PDF/UA-2 требует доступной структуры. Ни то ни другое не является средством защиты. Модель безопасности движка описана в центре доверия.

УтверждениеСтандартПунктreference_id (идентификатор ссылки)
Маркеры pdfaid, добавленные создателем, обозначают намерение; пункт стандарта о соответствии определяет, что решение принимает валидатор или процесс, а не библиотека.ISO 19005-4§6.7.3
Соответствие PDF/UA-2 оценивается по требованиям соответствия стандарта, а не заявляется создающим программным обеспечением.ISO 14289-2§7.2.2
Соответствующий файл PDF 2.0 должен удовлетворять заданным требованиям к структуре файла и трейлеру; библиотека создаёт их, но не принимает решение о результате.ISO 32000-2§7.5.5

Цитаты здесь — это указатели clause-id + reference_id на корпус проверки. Текст стандартов не воспроизводится.