跳到內容
getnextpdf.com

Pro 版本

合規

NextPDF Pro 會回報 PDF/UA-2 語言標籤事件、驗證並嵌入 Factur-X / ZUGFeRD 電子發票 XML,以及嵌入或讀取 C2PA 資訊清單儲存區。這些功能會產生報告與結構化結果。它們不會認證一份文件,也不保證法規上的充分性。

此能力隨 NextPDF Pronextpdf/pro)出貨,並以 Pro 等級的授權封套(license envelope)啟用。缺少該權利的部署不會載入此能力的類別。Compliance 是 Pro 版本的一部分;沒有獨立的逐功能授權旗標。比較各版本並取得授權

Terminal window
composer require nextpdf/pro:^3

Compliance 模組有三個獨立的面向。

語言標籤回報。 LangComplianceReporter 會為每個 PDF/UA-2 語言標籤事件發出一筆結構化的 JSON 記錄。每筆記錄都承載出問題的標籤、一個機器可讀的原因、剖析後的標籤組成、一個 ISO 14289-2 §8.4.4 條款參照,以及一個時間戳記。ConformancePolicy 是一個 Premium 門面(facade),預設採嚴格的 UA-2 語言處理:當格式錯誤或未註冊的 BCP-47 標籤抵達 /Lang 項目時,它會 fail closed。寬鬆退出(ConformancePolicy::withStrictUa2(false))會還原為舊版的寬容行為並記錄一則通知。NextPDF 已將該退出標記為已棄用;請改用嚴格預設。該退出自 v5.0 起存在,並在下一個主要版本中移除。要遷移,請稽核你的語料庫中是否有格式錯誤的 /Lang 值、加以修正,接著移除退出呼叫,讓嚴格預設生效。

電子發票處理。 EInvoiceValidator 會對照 EN 16931 語意資料模型以及 Factur-X 1.08 / ZUGFeRD 2.4 容器規範來檢查混合式 PDF。它會偵測設定檔、執行 EN 16931 商業規則引擎,並執行一趟 Schematron。在驗證之前,它會從 PDF 中抽取嵌入的發票 XML —— 包括從物件流(object-stream)PDF 中抽取,這類 PDF 是 Ghostscript、Gotenberg、Antenna House 等常見產生器的預設輸出,而較早的抽取機制無法讀取。抽取器接受 RFC 7303 帶參數的 MIME 子型別(例如 text/xml; charset=UTF-8),以及 ISO 32000-2 字面字串的嵌入檔名,包含轉義。FacturXEmbedder 會產生一份附帶 Factur-X XML 的混合式 PDF/A-3 文件。EInvoiceValidationResult 會回報設定檔、語法、規則違反,以及外層封裝檢查。

來源證明(Provenance)。 C2paManifestEmbedder 會將呼叫端提供的 C2PA 資訊清單儲存區嵌入到一段 PDF 位元組字串中,或將其抽取出來。ManifestStore 是跨越邊界的不可變值物件。此接縫不會合成主張,也不解析雜湊綁定。

本模組回報它所檢查的內容。它不主張一份文件在法律上合規、經認證或具法律拘束力,也不保證任何輸出滿足某項法規或司法管轄。

  • 電子發票驗證器檢查 EN 16931 語意模型以及 Factur-X / ZUGFeRD 容器規範。它不是稅務機關驗證器。國家擴充 —— 例如義大利 SDI、法國 Chorus Pro、德國 XRechnung —— 不在範圍內。正如 EN 16931-1 本身所述,發票開立者有責任符合相關法規的規則。
  • 語言標籤回報器會產生一份標籤事件報告。它不會使一份文件變得一致。
  • C2PA 嵌入會寫入呼叫端提供的資訊清單。它不會產生或簽署其中的主張。

支援某項標準,與符合該標準並不相同。請諮詢你的合規團隊,以判斷對你的用途而言法規是否充分。

承載全局的決策,是在檢查與認證之間劃出一條硬界線。每個面向都回傳證據 —— 一份報告、一個驗證結果、一段嵌入的資訊清單 —— 而非斷言一份文件在法律上合規。這讓此接縫在各版本間保持誠實。ConformancePolicy 會對格式錯誤的 /Lang 標籤 fail closed,而 C2paManifestEmbedder 絕不簽署它所承載的主張。EInvoiceValidator::validate() 會回傳一個 EInvoiceValidationResult;一個綠燈的 isValid() 只是你決策的一項輸入,而非你可以未經查核就交給監管機構的判定。這些證據會與你自己的控管相組合,而非取代它們,因此即使輸入是惡意的,它仍保持真實。

設計背景:可交給稽核人員的合規

類別職責
LangComplianceReporter發出結構化的語言標籤事件記錄。
ConformancePolicyPremium 嚴格 UA-2 語言政策門面。
EInvoiceValidator檢查 EN 16931 / Factur-X / ZUGFeRD;回傳一個結果。
EInvoiceValidationResult設定檔、語法、規則違反、外層封裝檢查。
FacturXEmbedder產生一份混合式 PDF/A-3 + Factur-X XML 文件。
C2paManifestEmbedder嵌入或抽取一個 C2PA 資訊清單儲存區。
ManifestStore不可變的 C2PA 資訊清單儲存區值物件。
use NextPDF\Pro\Compliance\EInvoice\EInvoiceValidator;
$result = $validator->validate('/path/to/invoice.pdf');
$ok = $result->isValid(); // true only if wrapper, attachment, profile, and no fatal BR
$result = $validator->validate($pdfPath);
foreach ($result->businessRuleViolations as $violation) {
$logger->warning('einvoice.br_violation', [
'rule' => $violation->ruleId,
'severity' => $violation->severity->value,
]);
}
// A green result is one input to your decision, not a compliance verdict.
  • 一份格式良好、非 Factur-X 的 PDF 會回傳「不是電子發票」的結果,而非拋出例外。
  • XML 抽取器會讀取物件流 PDF(Ghostscript、Gotenberg、Antenna House 的預設輸出),並接受 RFC 7303 帶參數的 MIME 子型別與 ISO 32000-2 字面字串檔名。這是針對一致性產生器輸出的相容性抽取,而非針對惡意輸入的權威性附件驗證 —— 對抗式公開端點的完整 xref 啟用是一個已記載的延後處理邊界。請據此謹慎看待從不受信任來源所做的抽取。
  • 空的商業規則違反清單本身並不代表文件有效;外層封裝與附件檢查也同樣適用。
  • NextPDF 已棄用嚴格 UA-2 的寬鬆退出;請遷移到嚴格預設(見「概念總覽」)。它會在下一個主要版本中移除。

驗證成本隨嵌入 XML 大小與規則數量而擴展。語言標籤回報則是每個事件固定成本。

所有 XML 剖析皆停用外部實體解析(XXE-safe)並限制解壓縮。請將來自不受信任來源的電子發票 XML 與 C2PA 位元組視為惡意。

電子發票 XML 可能包含個人與財務資料。處理在行程內且於本機進行;本模組不會為了驗證而發出任何對外網路呼叫。請對抽取出的 XML 與報告套用你自己的留存與最小化控管。

回報器記錄與驗證日誌可能包含標籤值與規則識別碼。它們不包含完整的發票酬載。若那些標籤值具敏感性,請在將日誌轉發到共用接收端之前先加以清洗或遮蔽。

行為參照狀態
自然語言宣告(/LangISO 14289-2:2024 §8.4.4已檢查/已回報
核心發票語意模型EN 16931-1:2026已檢查(開立者仍負其責)
C2PA 資訊清單儲存區 / JUMBFC2PA 2.1 §11.1支援嵌入/抽取

本表記錄了 NextPDF Pro 所對齊建構的規範以及它所檢查的內容。它不是認證或法規充分性的聲明。

本模組不執行任何密碼學簽署。C2PA 主張簽署與金鑰保管不在其範圍內;FIPS 模式的簽署行為請參閱 Security 模組。

不受信任的電子發票 XML 與 C2PA 位元組是主要輸入。緩解措施:XXE-safe 剖析、有界限的解壓縮、不跨 C2PA 接縫合成主張,以及驗證期間無網路 I/O。

  • LangComplianceReporter 會為每個 PDF/UA-2 語言標籤事件發出一筆結構化 JSON 記錄,內含出問題的標籤、一個機器可讀的原因、剖析後的標籤組成、一個 ISO 14289-2 §8.4.4 參照,以及一個時間戳記。
  • ConformancePolicy 預設採嚴格的 UA-2 語言處理,並在格式錯誤或未註冊的 BCP-47 標籤抵達 /Lang 時 fail closed。寬鬆退出已棄用,並在下一個主要版本中移除。
  • EInvoiceValidator 會偵測設定檔、執行 EN 16931 商業規則引擎與一趟 Schematron,並回傳一個 EInvoiceValidationResult。它不是稅務機關驗證器;國家擴充不在範圍內,且開立者依 EN 16931-1 仍負其責。
  • FacturXEmbedder 會產生一份附帶 Factur-X XML 的混合式 PDF/A-3 文件。C2paManifestEmbedder 會嵌入或抽取呼叫端提供的 ManifestStore;它不會合成或簽署主張。
  • 本模組回報它所檢查的內容。它不會認證一份文件,也不保證法規充分性。

Pro 中的 Compliance 涵蓋語言標籤回報、EN 16931 / Factur-X / ZUGFeRD 檢查,以及 C2PA 資訊清單嵌入/抽取。擴充的封存與簽章設定檔,以及帶金鑰保管的 C2PA 主張簽署,屬於 Enterprise 等級的範疇,另行記載,且本模組不提供。

語言標籤回報、電子發票處理或 C2PA 資訊清單嵌入沒有任何 Core 對應方案。這些都是 Pro 的新增功能。

本頁僅描述外部可觀察的行為以及受支援的公開 API 介面。內部命名空間路徑、輔助類別、機制表格、runbook 檔名,以及票證前綴皆不在範圍內。