一致性首页:NextPDF 会产出什么,以及由谁判定是否一致
边界声明。 支持某个配置文件并不等于一致; 一致与否由独立的验证器(validator)判定。
本页为 NextPDF Core 锁定的标准配置文件提供 Index(索引)。本节每一页都遵循一条直接取自标准本身的规则:本库产出的是以某个配置文件为一致性目标的输出,而某个文件是否真的一致,由独立的验证器(validator)判定——可能是 veraPDF、某个 PDF/UA 检查器、某个 Schematron 电子发票验证器,或接收方主管部门。ISO 19005-4 §6.7.3 对 PDF/A 明确规定:写入器发出的 pdfaid:part/pdfaid:rev 标记“本身并不决定一致性”。判定须依标准的一致性条款所规定的方式执行,由产出库以外的程序进行。
NextPDF 不主张一致性。它只发出某个配置文件所要求的结构性产物。当某个配置文件启用把关(gate)时,NextPDF 会在 API 边界快速失败(fail fast),让缺漏的能力呈现为明确错误,而不是默默产出一个不一致的文件。
composer require nextpdf/core:^3以下部分配置文件需要 Premium 的 nextpdf/pro 包(各页另有标注)。Core 随附一致性判别器(NextPDF\Conformance\ConformanceMode)以及 NextPDF\Compliance 中的字节流验证器;归档配置文件所需的 OutputIntent/ICC/XMP 撰写路径则由 nextpdf/pro 提供。
概念总览
标题为“概念总览”的章节NextPDF 通过一个带类型的单一判别器 NextPDF\Conformance\ConformanceMode 将文档路由到一致性契约。这个 enum 是“写入器必须遵循哪一份 ISO 契约”的唯一事实来源。它包含以下 case:Plain、PdfUa1、PdfUa2、PdfA2、PdfA3/PdfA3b/PdfA3u,以及 PdfA4/PdfA4e/PdfA4f。写入器读取这个模式并发出所需结构;它从不设置“这个文件一致”的标志。
本节的每一页都遵循三条边界:
- 支持 ≠ 一致。 发出某个配置文件所要求的元数据代表一种能力,不是判定结果。
- 验证 ≠ 认证。 运行一个报告零错误的验证器是佐证,不是证书。
- 已测试的配置文件 ≠ 认证。 NextPDF 本身的测试断言其发出的字节与所引条款相符;这些测试并非经认可的审计。
API 接口
标题为“API 接口”的章节以下是 NextPDF\Core\Document 上的一致性入口点:
| 方法 | 效果 | 层级 |
|---|---|---|
enablePdfA(?object $version = null) | 将文档路由到某个 PDF/A 的 ConformanceMode case(默认为 PdfA4);在 save() 时调度 OutputIntent + ICC + XMP。抛出 InvalidConfigException(当 nextpdf/pro 不存在时)。 | Core API,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的读取器知道的是产出者的意图,而不是这个文件确实一致。 - 能力把关采用快速失败(fail fast)。 只安装 Core 却调用 Premium 归档路径时,会得到带有升级消息的
InvalidConfigException,绝不会默默产出一个不一致的文件。
本索引不适用。各配置文件的专属页面会分别声明预算。
安全注意事项
标题为“安全注意事项”的章节一致性配置文件约束的是结构,而非威胁态势。PDF/A-4 禁止加密;PDF/UA-2 则强制要求可访问的结构。两者都不是安全控制措施。关于本引擎的安全模型,请参阅 信任中心。
一致性
标题为“一致性”的章节| 声明 | 规范 | 条款 | 参考 ID(reference_id) |
|---|---|---|---|
产出者的 pdfaid 标记本身并不决定一致性;判定须依标准的一致性条款执行(也就是由 validator/process 执行,而不是由库执行)。 | ISO 19005-4 | §6.7.3 | |
| PDF/UA-2 的一致性依据标准的一致性要求来评估,而不是由产出软件主张。 | ISO 14289-2 | §7.2.2 | |
| 一个一致的 PDF 2.0 文件必须满足标准定义的文件结构与 trailer 要求;本库会发出这些结构,但不会裁决结果。 | ISO 32000-2 | §7.5.5 |
引用通过条款 ID 加 reference_id 指针指向验证语料库。不复现任何标准文字。