跳转到内容
getnextpdf.com

Enterprise 版本

Compliance

NextPDF Enterprise 把一份成品 PDF 路由到一个外部验证工具——veraPDF、EU DSS 或 Mustang/KoSIT——并返回一个统一、结构化的结果。该结果记录外部工具检查了什么。它不是证书、法律意见,也不是文档满足任何法规的保证。

此能力随 NextPDF Enterprisenextpdf/enterprise)发行,并通过一份 Enterprise 层级的授权信封启用。一个没有该权益的部署不会加载此能力的类。比较各版本并获取授权

Terminal window
composer require nextpdf/enterprise:^3

本模块是一个网关,而非一个验证器。符合性裁决来自一个外部工具。网关选择正确的工具、委托给它,并把答案归一化。

ComplianceGateway 接受一个 ComplianceProfile 与 PDF 字节。它解析出由哪个已注册的 ExternalValidator 处理该配置文件、检查旁车是否可达、委托该检查,并返回一个 ExternalValidationResultComplianceProfile 列举受支持的目标:PDF/A-1b/2b/3b/4/4f、PDF/UA-1/2、PDF 2.0 Arlington 结构模型、PAdES B-B/B-T/B-LT/B-LTA、ZUGFeRD 2.4 / Factur-X 1.08,以及 EN 16931。每个情形都映射到一个规范性引用与一个外部工具。

ExternalValidator 是每个旁车桥接所实现的契约:VeraPdfValidator(veraPDF REST)、DssValidator(EU DSS REST),以及 ZugferdExternalValidator(Mustang/KoSIT)。每一个都通过一个 PSR-18 HTTP 客户端与其旁车通信,并把工具特定的响应转译为一个 ExternalValidationResult

一项失败关闭策略管辖旁车缺失的情形。默认情况下,一个不可用的旁车会抛出 ComplianceSidecarUnavailableException:缺失一个验证器意味着无法检查,而非通过。一个显式的可选模式会把该状况降级为一条已记录的警告与一个 null 结果,因此调用方可以察觉“未检查”并自行决定。AiReadyCertifier 是一个独立的接缝:它评估三项就绪标准,并加盖一个 nextpdf: XMP 来源块。它的“certified”级别是一个 NextPDF 内部的就绪标签。它不是标准认证,也不授予任何监管地位。

本模块委托一项检查并报告结果。它不断言一份文档在法律上合规、已认证,或具有法律约束力。

  • 符合性是最终文件加上一个验证器所具有的属性,而非本库所具有的属性。ISO 19005-4:2020 §5.2 把义务置于一个符合处理器之上,并对照标准的规范性要求来判定符合性——由一个检查工具,而非由生产软件。
  • 一个零不符合项的结果,是对照外部工具所实现的条款做出的已检查结果。它不是一张笼统的证书。
  • 一个不可用的旁车意味着未检查。它绝不意味着通过。

支持某个配置文件不等于符合它,而符合性也不等于认证。NextPDF 不持有任何认证,也不授予任何认证。请咨询你的合规团队来判断监管充分性。

请精确地解读各版本。它们做不同的事。

  • NextPDF Core Conformance / Compliance 运行进程内的字节流与文法检查,并携带符合性模式判别器。Core 发出标准所定义的结构。它不为结果做认证。
  • NextPDF Pro ComplianceEInvoiceValidator 在进程内验证 EN 16931 / Factur-X / ZUGFeRD,不使用外部旁车。
  • NextPDF Enterprise Compliance(本页) 委托给外部验证器旁车(veraPDF、EU DSS、Mustang/KoSIT),并以失败关闭策略把结果归一化。

Pro 的进程内电子发票验证器与 Enterprise 的外部 ZUGFeRD 旁车是不同的接口。请不要混为一谈。

符合性是成品文件由一个检查工具所度量的属性,而非生产库的属性。因此网关把裁决委托给权威的外部工具,而自身仅做解析、委托与归一化。在进程内自我断言符合性会把“对照标准构建”与“经独立确认”混为一谈,而标准禁止如此。失败关闭的默认由此而来:一个不可达的旁车是无法检查,因此它抛出而不通过。这可防止一次缺失的检查伪装成符合性,也让 NextPDF 对“不持有任何认证”保持诚实。

设计背景:可以交给审计员的合规

职责
ComplianceGateway为一个配置文件解析工具;委托;应用失败关闭策略。
ComplianceProfile受支持配置文件的枚举,每个都带一个标准引用与工具。
ExternalValidator一个外部旁车桥接的契约。
ExternalValidationResult统一结果:配置文件、工具、符合性标志、不符合项。
NonConformance来自外部工具的一项不符合项。
VeraPdfValidatorveraPDF REST 桥接(PDF/A、PDF/UA、Arlington)。
DssValidatorEU DSS REST 桥接(PAdES 级别)。
ZugferdExternalValidatorMustang/KoSIT 桥接(ZUGFeRD / Factur-X / EN 16931)。
AiReadyCertifier就绪评估外加一个 nextpdf: XMP 来源戳。
use NextPDF\Enterprise\Compliance\ComplianceProfile;
$result = $gateway->validate($pdfBytes, ComplianceProfile::PdfA4);
$passed = $result?->passes(); // null = sidecar unavailable (not checked)
$result = $gateway->validate($pdfBytes, ComplianceProfile::PdfA4);
if ($result === null) {
$logger->error('compliance.not_checked', ['profile' => 'pdfa-4']);
// Treat "not checked" as a blocker, never as a pass.
return;
}
foreach ($result->nonConformances as $nc) {
$logger->warning('compliance.nonconformance', ['profile' => $result->profile->value]);
}
// A conformant=true result is one input to your decision, not a verdict you own.
  • 一个不可用的旁车默认会抛出 ComplianceSidecarUnavailableException;可选模式返回 null。无论哪一种,文档都未被检查
  • 一个没有已注册验证器的配置文件会抛出一个参数错误,而非静默通过。
  • buildComplianceMatrix() 为可追溯性记录工具版本与一个 commit SHA;该矩阵报告工具输出,它并不为之做认证。

成本主要由外部旁车往返与发送给它的文档大小决定。网关解析与结果归一化在每次调用中是恒定的。

PDF 字节通过一个 PSR-18 客户端发送给旁车。VeraPdfValidator 仅解析 JSON 响应(不解析 XML,无 XXE)。请把旁车端点当作一个信任边界:锚定该旁车、限制其网络可达范围,并验证其 TLS。

完整的 PDF 字节流被传输给所配置的旁车。如果文档携带个人或受监管数据,请在你自己的控制之下、于区域内托管该旁车。网关不发起任何其他出站调用。请对结果与日志施加留存与最小化控制。

网关日志包含配置文件名称、工具名称、断言计数与不符合项计数。它们不包含文档内容。如果配置文件或文件名字段是敏感的,请在转发日志之前先清洗它们。

行为引用状态
符合性由一个检查工具判定,而非由生产者ISO 19005-4:2020 §5.2体现在设计中(失败关闭网关)
PDF/A-4 文件要求ISO 19005-4:2020 §6.6.4委托给 veraPDF
PDF/UA-2 符合性(文件所具有的属性)ISO 14289-2:2024 §6委托给 veraPDF
PAdES 基准级别ETSI EN 319 142-1 §5.4.3委托给 EU DSS

本表记录 NextPDF 所对照构建的规范,以及外部工具检查了什么。它不是认证或监管充分性的声明。

本模块不执行任何密码学签名。签名符合性被委托给 EU DSS;密钥保管与 FIPS 模式签名不在其范围之内(参见 Signature 与 Security 模块)。

主要输入是不受信任的 PDF 字节与一个旁车响应。缓解措施:VeraPdfValidator 中的仅 JSON 响应解析、一个锚定的旁车信任边界,以及一项失败关闭策略,使一个不可达的验证器绝不会被解析为通过。

  • 本模块是一个网关,而非一个验证器:符合性裁决来自一个外部工具(veraPDF、EU DSS 或 Mustang/KoSIT),而网关选择工具、委托,并把答案归一化。
  • 一个零不符合项的结果,是对照外部工具所实现的条款做出的已检查结果——而非一张笼统的证书。
  • 一个不可用的旁车是失败关闭的:它默认抛出一个异常,或在显式的可选模式中返回一个 null 结果;无论哪一种,文档都未被检查,绝不通过。
  • 一个没有已注册验证器的配置文件会抛出一个参数错误,而非静默通过。
  • AiReadyCertifier 的“certified”级别是一个 NextPDF 内部的就绪标签,不是标准认证,且不授予任何监管地位。

本页仅记录外部可观察的行为与受支持的公开 API 接口。内部命名空间路径、辅助类、机制表、运维手册文件名与工单前缀均不在范围之内。

NextPDF Core Conformance / Compliance 运行进程内的字节流与文法检查,并携带符合性模式判别器;它发出标准所定义的结构,但不为结果做认证,也不委托给外部旁车。外部验证器网关在 Core 层级没有等价物。

NextPDF Pro Compliance 在进程内验证 EN 16931 / Factur-X / ZUGFeRD,不使用外部旁车。Pro 的进程内电子发票验证器与 Enterprise 的外部 ZUGFeRD 旁车是不同的接口;外部验证器网关仅随 nextpdf/enterprise 包发行。请不要混为一谈。

网关、配置文件到工具的解析,以及结果归一化,均在行为层面进行描述。各旁车桥接的内部机制、工具特定的响应转译,以及任何内部编排细节,都不属于公开接口范围。

完整的 PDF 字节流被传输给所配置的旁车。操作方托管并运营这些旁车、锚定它们、限制其网络可达范围,并验证其 TLS——旁车端点是一个信任边界。如果文档携带个人或受监管数据,请在你自己的控制之下、于区域内托管该旁车,并对结果与日志施加留存与最小化控制。

支持某个配置文件不等于符合它,而符合性也不等于认证——NextPDF 不持有任何认证,也不授予任何认证。本文档不是法律意见;请咨询你的合规团队来判断监管充分性。