Архивирование и PDF/A
Spec: ISO 19005-4:2020, PDF/A-4 ISO 19005-4:2020 PDF/A-4 Spec: ISO 19005-2, PDF/A-2 ISO 19005-2 PDF/A-2 Evidence: Standard-backed
PDF/A — это формат, к которому обращаются, когда документ должен оставаться читаемым и точным спустя десятилетия, в программах, которых ещё не существует. Эта страница объясняет, что на самом деле охватывает такая гарантия, как NextPDF создаёт соответствующий файл и что обычно удивляет команды: создать PDF/A и доказать, что файл является PDF/A, — разные задачи. Вторая по-прежнему остаётся за вами.
Почему это важно
Заголовок раздела «Почему это важно»Архивные обязательства неумолимы именно своей незаметностью. Сегодня файл выглядит нормально, поэтому его помещают в архив. Сбой — невстроенный шрифт, аппаратно-зависимый цвет, зашифрованный трейлер — обнаруживается годы спустя, когда исходного окружения уже нет и никто не может восстановить, как должен был выглядеть документ. К этому моменту цена — не повторная отрисовка, а запись, которой вы уже не можете доверять.
PDF/A существует именно для того, чтобы устранить этот класс сбоев. Но “мы использовали библиотеку PDF/A” — это не то же самое, что “этот файл соответствует”. Из-за смешения этих двух вещей в архивах накапливаются документы, которые лишь кажутся сохранёнными.
Кратко о главном
Заголовок раздела «Кратко о главном»- Назначение PDF/A — точное, самодостаточное, аппаратно-независимое воспроизведение во времени — он сохраняет статический визуальный облик документа независимо от инструментов, которыми документ был создан (ISO 19005-2, Введение).
- Это требует конкретных ограничений: все шрифты встроены, аппаратно-независимый цвет (напрямую или через output intent; ISO 19005-4 §6.2.4.1) и отсутствие шифрования в трейлере.
- NextPDF создаёт PDF/A через явный, включаемый по запросу режим, который отклоняет несовместимые операции вместо того, чтобы выдать файл, который незаметно не соответствует требованиям.
- Соответствие определяет средство проверки, а не заявляет производитель. Даже успех применения стандарта зависит от окружающей архивной среды и процедур (ISO 19005-4, Введение). Проверка результата — это шаг, который по-прежнему за вами.
Как NextPDF подходит к этому
Заголовок раздела «Как NextPDF подходит к этому»NextPDF рассматривает PDF/A как режим документа, а не как фильтр постобработки. Этот режим включается по запросу. Когда он включён, он активно защищает документ от операций, которые нарушили бы соответствие. Принцип проектирования — быстрый отказ: лучше явно отклонить запрос на зашифрованный PDF/A, чем вернуть файл, который выглядит архивным, но таковым не является.
В этом сценарии четыре этапа. Третий — именно тот, который команды часто пропускают.
- Compose for permanence Embed every font, use device-independent colour or an output intent, and avoid features the chosen PDF/A part forbids.
- Enable the PDF/A mode Opt in explicitly to the target conformance level. The mode now guards the document against incompatible operations.
- Validate independently Run a conformance checker. A passing report — not the producing library — is the evidence the archive needs.
- Preserve with procedure Store under records-management policy. The standard itself notes archival success depends on the environment, not the file alone.
Включение по запросу — это настоящая защита, а не просто флаг. Когда режим PDF/A включён и выполняется несовместимая операция — включение AES-GCM или стандартного обработчика шифрования, — движок выбрасывает типизированную ошибку несовместимости. Защита работает в обоих порядках: включить PDF/A, затем запросить шифрование, либо запросить шифрование, затем включить PDF/A. В любом случае результат — однозначный отказ.
ISO 19005 запрещает ключ Encrypt в трейлере соответствующего
файла, и движок рассматривает это как обязательное требование, а не рекомендацию.
Режим также поддерживает согласованность собственного состояния. Включение PDF/A для конкретной части (например, побайтно точного уровня PDF/A-3 по сравнению с PDF/A-4) устанавливает дискриминант соответствия документа в нужное значение. Тогда проверки на стороне записи, зависящие от части, видят правильное значение, а не устаревшее значение по умолчанию. Именно такая внутренняя согласованность решает, пройдёт ли файл проверку валидатором.
Что говорят свидетельства
Заголовок раздела «Что говорят свидетельства»Эта страница полностью подкреплена стандартом. Evidence: Standard-backed
Само назначение закреплено в стандарте. Spec: ISO 19005-2 ISO 19005-2 указывает, что основное назначение PDF/A — это механизм представления электронных документов так, чтобы их статический визуальный облик сохранялся во времени, независимо от используемых инструментов и систем. Из этого следуют ограничения: Spec: ISO 19005-4:2020, §6.2.4.1 ISO 19005-4:2020 §6.2.4.1 требует, чтобы цвет был задан аппаратно-независимо, напрямую или через output intent формата PDF/A. Требование к шрифтам подкреплено базовым форматом — Spec: ISO 32000-2:2020, §9 ISO 32000-2:2020 §9 отмечает, что наиболее предсказуемая, надёжная отрисовка достигается, когда все шрифты встроены, — именно то свойство, без которого архив не может обойтись.
Эта граница тоже задана стандартом, а не только редакционным предостережением. Spec: ISO 19005-4:2020 ISO 19005-4:2020 указывает во Введении, что успешное применение в архивных целях зависит от архивной среды организации, политик управления документами и дополнительных условий сохранности. Соответствие оценивается по нормативным требованиям стандарта средством проверки, а не объявляется производителем.
Поведение движка подкреплено кодом: Evidence: Code-backed
Document::enablePdfA() — это явное включение по запросу: оно выбрасывает типизированную
ошибку несовместимости, когда шифрование и PDF/A сочетаются в любом порядке,
и поддерживает дискриминант соответствия документа синхронно с
выбранной частью.
Практический пример
Заголовок раздела «Практический пример»Код ниже показывает поведение защиты на границе режимов. Сам режим PDF/A — это возможность уровня Premium. Проверка соответствия — это отдельный, независимый шаг.
<?php
declare(strict_types=1);
use NextPDF\Contracts\PdfDocumentInterface;use NextPDF\Security\Exception\IncompatiblePdfAModeException;
/** * Produce an archival candidate, then prove it independently. * * The engine refuses conformance-breaking combinations; it does NOT * certify the result. A validator does that. * * @param PdfDocumentInterface $doc A document with all fonts embedded * @param object $pdfaLevel The target PDF/A version (Premium enum) * * @return string The archival candidate's bytes — not yet a verified PDF/A */function buildArchivalCandidate( PdfDocumentInterface $doc, object $pdfaLevel,): string { try { // Opt in explicitly. From here the mode guards the document. $doc->enablePdfA($pdfaLevel); } catch (IncompatiblePdfAModeException $e) { // e.g. encryption was already requested — refused, not silently // downgraded into a non-conforming "archival" file. throw new \RuntimeException( 'PDF/A and encryption are mutually exclusive for a conforming ' . 'file; resolve before archiving.', previous: $e, ); }
$bytes = $doc->getPdfData();
// The step teams skip: this is a CANDIDATE. Run an independent // conformance validator before treating it as a preserved record. return $bytes;}Комментарий к возвращаемому значению — это и есть главный урок. Имя функции намеренно говорит кандидат. Движок создал файл, который должен соответствовать. Только средство проверки превращает “должен” в свидетельство.
Распространённое заблуждение
Заголовок раздела «Распространённое заблуждение»Из-за одного заблуждения архивы заполняются документами, которые на самом деле не сохранены: “библиотека говорит PDF/A, следовательно файл является PDF/A.” Выносить этот вердикт — не задача библиотеки. Производитель может выдать файл, предназначенный для соответствия, и всё же не выполнить нормативное требование. Соответствие определяется по стандарту средством проверки. Именно на это определение полагается аудитор или будущий читатель. Считать намерение библиотеки-производителя доказательством — главная ошибка.
Вторая, более тонкая ловушка — предполагать, что один лишь PDF/A сохраняет документ. Сам стандарт связывает успех архивирования с окружающей средой и процедурами. Соответствующий файл в недисциплинированном хранилище всё равно под угрозой. Формат необходим, но недостаточен.
Ограничения и границы
Заголовок раздела «Ограничения и границы»- NextPDF создаёт соответствующий кандидат; он не сертифицирует соответствие. Запустите независимый валидатор. Свидетельством является пройденный отчёт, а не библиотека-производитель.
- Режимы соответствия PDF/A — это возможность уровня Premium. Core выдаёт обычный PDF 2.0 и показывает практический путь обновления. Он не предоставляет гарантий PDF/A. См. границу ниже.
- PDF/A и шифрование взаимно исключают друг друга для соответствующего файла. Движок отклоняет это сочетание в любом порядке, а не деградирует незаметно.
- Движок не может встроить шрифты, которые ему не предоставлены, или исправить аппаратно-зависимый цвет, который вы передаёте. Компоновка для долговечности — встроенные шрифты, аппаратно-независимый цвет — это ответственность входных данных.
- Долговечность архива зависит от процесса, а не только от файла. ISO 19005 делает организационные сроки хранения и процедуры управления документами частью успешной сохранности.
- Эта страница подкреплена стандартом и описывает поведение в Premium. Она не утверждает сертификации и не предоставляет её.
| Edition | Availability |
|---|---|
| Core | Core выдаёт только обычный PDF 2.0. |
| Pro | Режимы соответствия PDF/A (включая побайтно точные уровни PDF/A-3 и PDF/A-4) доступны вместе с защитой от несовместимости с шифрованием. |
| Enterprise | Добавляет структурную политику соответствия PDF/A и отчёт (это всё ещё проверка структуры, а не сертификация — окончательное определение остаётся за валидатором и вашей командой по соответствию). |
Связанные документы
Заголовок раздела «Связанные документы»- Шрифты: самая сложная часть — почему шрифт, который выглядит правильно, всё равно может сделать файл несоответствующим или непригодным для поиска.
- Тестирование по эталонным файлам — как зафиксированный эталонный вывод улавливает побайтное смещение, незаметно нарушающее архивные гарантии.
- Счета и электронное выставление счетов — смежная тема: гибридный носитель счёта сам является файлом PDF/A.
Глоссарий
Заголовок раздела «Глоссарий»- PDF/A — семейство ISO 19005: ограниченный профиль PDF для долговременного хранения, предназначенный для воспроизведения статического облика документа во времени независимо от инструментов создания.
- Уровень соответствия / часть — конкретный вариант PDF/A (например, PDF/A-2, PDF/A-3, PDF/A-4 и их подуровни); каждый ограничивает, какие возможности PDF можно использовать.
- Output intent — встроенный профиль цветовой характеристики, позволяющий интерпретировать аппаратно-зависимый цвет аппаратно-независимо.
- Аппаратно-независимый цвет — цвет, заданный так, чтобы он воспроизводился единообразно независимо от устройства отрисовки; требование PDF/A.
- Средство проверки соответствия / валидатор — независимое программное обеспечение, оценивающее файл по нормативным требованиям стандарта; источник вердикта о соответствии.
- Архивный кандидат — файл, созданный с намерением соответствовать, до того как независимый валидатор подтвердил, что он действительно соответствует.