Соответствие, которое можно передать аудитору
Spec: ISO 19005-4 (PDF/A-4)ISO 19005-4 (PDF/A-4)Spec: ISO 32000-2ISO 32000-2Spec: ETSI EN 319 142-1ETSI EN 319 142-1Spec: EN 16931-1EN 16931-1
Аудитор не хочет слышать, что документ соответствует. Он хочет получить в руки две вещи: документ и результат проверки, которая это подтверждает. Эта страница — о том, как получить и то и другое с NextPDF: соответствующий результат и результат проверки, который можно показать тому, кто задаёт вопрос.
Открытое ядро создаёт архивный вывод PDF/A и базовые подписи PAdES, а также проверяет соответствие — PDF/A, PDF/UA и подписей. Расширенные издания распространяют этот охват на долгосрочную проверку и электронные счета. И повсюду действует одно правило: соответствие — это вердикт проверяющего, а не обещание, которое вправе дать тот, кто создал файл.
Почему это важно
Заголовок раздела «Почему это важно»У работы с соответствием есть характерная примета. Кто-то говорит: “да, это соответствует”, — и в комнате повисает тишина, потому что никто не может предъявить то, что это доказывает. Документ выглядит правильно. Библиотека авторитетна. Ничто из этого не является доказательством.
Цена этого разрыва асимметрична. Файл, который лишь выглядит соответствующим, сегодня проходит проверку, а спустя месяцы — при внешней проверке в налоговом органе, в долгосрочном архиве или в суде — не проходит её, когда исходный контекст уже утрачен, а объяснить сбой дорого. Стандарты предусмотрели именно это. Файл PDF/A записывает целевой профиль в свои метаданные, но эта идентификация выражает намерение того, кто его создал; определение соответствия выносится процессом проверки вне создающего программного обеспечения (Spec: ISO 19005-4 (PDF/A-4), §6.7.3ISO 19005-4 (PDF/A-4) §6.7.3). Сам формат говорит вам, что последнее слово остаётся не за создателем.
Если коротко
Заголовок раздела «Если коротко»- Можно получить и соответствующий результат, И результат, который подтверждает соответствие. Не утверждение — артефакт плюс проверку.
- Ядро покрывает распространённые случаи. Оно создаёт архивный вывод PDF/A и подписи PAdES B-B / B-T, а также проверяет соответствие для PDF/A, PDF/UA и подписей.
- Соответствие — это вердикт средства проверки, привязанный к стандарту, пункту и уровню. NextPDF называет профиль и целевой уровень, никогда — безусловное “соответствует” (Spec: ETSI EN 319 142-1, §6.1ETSI EN 319 142-1 §6.1).
- Расширенные издания расширяют охват. Долгосрочная проверка (PAdES B-LT / B-LTA) и электронные счета (ZUGFeRD / Factur-X по EN 16931) — это возможности коммерческого уровня.
- Движок отказывается имитировать вердикт. Он создаёт кандидата и запускает проверку; он никогда не штампует файл как соответствующий собственной властью.
Как это реализовано в NextPDF
Заголовок раздела «Как это реализовано в NextPDF»В основе подхода — одно чистое разделение, применяемое повсеместно: создание артефакта, который определяет стандарт, — это возможность; решение о том, что артефакт соответствует, — это вердикт. NextPDF даёт вам первое и позволяет получить второе от проверяющего. Он никогда их не смешивает.
Именно это разделение делает вывод пригодным для передачи. Подпись — самый ясный случай. Её значение вычисляется по объявленному диапазону байтов, который намеренно исключает саму подпись (Spec: ISO 32000-2, §12.8ISO 32000-2 §12.8), и именно поэтому действительность — это то, что третья сторона может пересчитать по файлу, а не принять на веру. Задача создателя — корректно записать эту структуру. Задача средства проверки — подтвердить её. Две задачи, две стороны, и вторая — та, которой доверяет аудитор.
Так что рабочий процесс, который вы передаёте, состоит из четырёх шагов, и третий из них превращает “должно соответствовать” в “соответствует”.
- Produce a candidateGenerate PDF/A archival output or a PAdES signature with the conformance-relevant structure in place — embedded fonts, declared profile, a signature over a correct byte range.
- Refuse the impossibleThe engine rejects conformance-breaking combinations (an encrypted PDF/A, a signature level it cannot honor) rather than emitting a file that silently does not conform.
- Validate independentlyRun a conformance checker — PDF/A, PDF/UA, signature. A passing report is the evidence; the producing library is not.
- Hand over bothGive the auditor the document and the validation result together. The verdict travels with the artifact.
Средний шаг — не украшение. Когда архивный режим включён и предпринимается несовместимая операция — например, включение шифрования, — движок выдаёт типизированную ошибку вместо того, чтобы выродить файл в несоответствующий “архивный” документ. Громкий отказ — это то, что сохраняет кандидата достаточно честным, чтобы он прошёл следующую за этим проверку.
И проверка градуирована, это никогда не один бит. PAdES уровневый по своей природе: B-B, B-T, B-LT и B-LTA — каждый добавляет к предыдущему (Spec: ETSI EN 319 142-1, §6.1ETSI EN 319 142-1 §6.1). Подпись B-T несёт доверенную метку времени, которой нет у B-B. Утверждение, называющее уровень, — честное утверждение; голое “подписано” — нет. NextPDF заставляет вас называть уровень, поэтому результат, который вы передаёте, говорит ровно о том, что было достигнуто.
Практический пример
Заголовок раздела «Практический пример»Короткая, законченная форма. Она создаёт кандидата, проверяет его и считает доказательством ответ средства проверки — никогда не сам создающий вызов.
<?php
declare(strict_types=1);
use NextPDF\Contracts\PdfDocumentInterface;use NextPDF\Conformance\ConformanceValidator;use NextPDF\Conformance\ConformanceTarget;use NextPDF\Conformance\ValidationReport;
/** * Produce a candidate, then prove it with an independent check. * * The producing call returns bytes that SHOULD conform. Only the * validator's report turns "should" into something an auditor accepts. * * @param PdfDocumentInterface $candidate A document composed for archival * (fonts embedded, profile declared) */function archivalEvidence( PdfDocumentInterface $candidate, ConformanceValidator $validator,): ValidationReport { // 1. The producing call states intent; it does not certify. $bytes = $candidate->getPdfData();
// 2. The check is the verdict. Conformance is decided here, by the // validator, against the named target — not by the line above. $report = $validator->validate($bytes, ConformanceTarget::PdfA);
// 3. Hand BOTH over: the bytes plus the report. The report names the // target, the level, and every requirement that was checked. return $report;}Переменная намеренно названа $candidate, и отчёт намеренно является возвращаемым
значением. Документ — это то, что вы создали; отчёт — это то, что его доказывает.
Аудитор попросил вас продемонстрировать соответствие — поэтому вы даёте ему
демонстрацию, а не слово создателя.
Распространённое заблуждение
Заголовок раздела «Распространённое заблуждение»Заблуждение, которое наполняет архивы несохранёнными файлами, а почтовые ящики — отклонёнными счетами, простое: “библиотека говорит PDF/A, значит файл — PDF/A”. Это не библиотеке выносить такой вердикт. Создатель может выдать файл, намереваясь соответствовать, и всё же упустить нормативное требование; только процесс проверки превращает намерение в определение. Считать создающий вызов доказательством — это и есть основная ошибка, и это ровно та ошибка, которую аудитор обучен ловить.
Вторая, более тонкая ловушка — слышать “NextPDF соответствует стандартам” как одну тотальную гарантию. Такого не бывает, и ни один честный движок этого не предлагает. Соответствие — по стандарту, по пункту и по уровню. Правильное утверждение называет, какой профиль, какой уровень, и показывает проверку. Утверждение без этого — маркетинг, и Insider_ его не печатает.
Пределы и границы
Заголовок раздела «Пределы и границы»- NextPDF создаёт соответствующего кандидата и проверяет его; он не заверяет соответствие. Отчёт средства проверки — это доказательство. Создающая библиотека никогда не выдаёт собственный сертификат.
- Проверка — это результат проверяющего, а не абсолютная гарантия. Чистый прогон означает, что файл удовлетворил требованиям, которые проверило средство проверки, относительно той редакции стандарта, которую оно реализует. Это самое сильное доступное доказательство, а не метафизическое подтверждение.
- Охват ядра — это архивный вывод PDF/A и подписи PAdES B-B / B-T, плюс проверка соответствия для PDF/A, PDF/UA и подписей. Оно не предоставляет втихую возможности расширенных изданий.
- Долгосрочная проверка (B-LT / B-LTA) и электронные счета (ZUGFeRD / Factur-X по EN 16931) — это возможности расширенных изданий. EN 16931-1 определяет семантическую модель счёта, относительно которой проверяется полезная нагрузка (Spec: EN 16931-1, ScopeEN 16931-1 Scope); её соблюдение — коммерческий уровень, а не ядро.
- Юридический эффект — это вопрос, отдельный от технического соответствия. Достаточна ли подпись юридически в той или иной юрисдикции, решают закон и принимающий орган, а не средство проверки. NextPDF говорит о техническом результате; ваша команда по комплаенсу говорит о его юридическом весе.
| Edition | Availability |
|---|---|
| Core | Создаёт архивный вывод PDF/A и подписи PAdES B-B / B-T, а также проверяет соответствие для PDF/A, PDF/UA и подписей. И вывод, и результат проверки доступны для передачи. |
| Pro | Добавляет долгосрочную проверку — PAdES B-LT / B-LTA — встраивая свидетельства об отзыве и метки времени документа, которые сохраняют проверяемость подписи после истечения срока действия сертификата. |
| Enterprise | Добавляет электронные счета (ZUGFeRD / Factur-X по EN 16931), а также структурную политику соответствия и отчёт — это по-прежнему проверка структуры, а окончательное определение остаётся за средством проверки и вашей командой по комплаенсу. |
Более глубокий инструментарий соответствия и приведённая граница соответствия для каждой возможности расширенного издания находятся на странице соответствие и конформность. Когда вам нужно запустить проверку, руководство устранение неполадок при проверке PDF/A и PDF/UA шаг за шагом разбирает чтение и исправление непройденного отчёта.
Связанные документы
Заголовок раздела «Связанные документы»- Архивирование и PDF/A — что PDF/A гарантирует и почему доказательство соответствия — задача, отдельная от его создания.
- Правильная проверка подписи — полный набор проверок, стоящих за “подпись действительна”.
- Ландшафт стандартов — карта органов стандартизации и того, как пункт становится проверяемым поведением.
- Базовые профили PAdES — B-B, B-T, B-LT и B-LTA как последовательность и как выбрать уровень, который требует ваше обязательство.
- Счета и электронные счета — гибридный счёт PDF / структурированные данные по EN 16931, от начала до конца.
Глоссарий
Заголовок раздела «Глоссарий»- Соответствие — согласие файла с нормативными требованиями стандарта, как его определяет процесс проверки, привязанное к конкретному стандарту, пункту и уровню.
- Кандидат — файл, созданный с намерением соответствовать, до того как независимое средство проверки подтвердило, что он соответствует.
- Средство проверки / проверяющий соответствия — независимое программное обеспечение, которое оценивает файл относительно требований стандарта и выдаёт результат, на который опирается аудитор.
- PDF/A — семейство ISO 19005: ограниченный профиль PDF для долгосрочного хранения, спроектированный для воспроизведения статичного вида документа со временем.
- PDF/UA — семейство ISO 14289: профиль доступности, который определяет, как тегированный PDF передаёт структуру вспомогательным технологиям.
- PAdES — PDF Advanced Electronic Signatures, семейство профилей подписи ETSI EN 319 142 (B-B, B-T, B-LT, B-LTA), на которое ссылается ISO 32000-2 для подписания PDF.
- EN 16931 — европейский стандарт, определяющий семантическую модель данных базового электронного счёта, относительно которого проверяется полезная нагрузка гибридного электронного счёта.