Core 核心套件¶
NextPDF Core
nextpdf/core 是 NextPDF 生態系的基石,實作完整的 PDF 2.0(ISO 32000-2:2020)生成管線。從字型子集化、雙向文字排版到 AES-256 加密與 PAdES B-B 數位簽章,Core 提供所有上層套件(Pro、Enterprise、框架整合)所需的底層能力。
Core 以 PHP 8.5 撰寫,採用三層文件生命週期(Process → Factory → Document),所有可變狀態集中於 RenderingContext,確保執行緒安全與可測試性。
PHP Compatibility
This example uses PHP 8.5 syntax. If your environment runs PHP 8.1 or 7.4, use NextPDF Backport for a backward-compatible build.
模組總覽¶
Core 由 16 個功能模組組成:
| 模組 | 命名空間 | 職責 |
|---|---|---|
| Accessibility | NextPDF\Accessibility | Tagged PDF、PDF/UA-2、StructureTree |
| Barcode | NextPDF\Barcode | 23 種 1D + 9 種 2D 條碼編碼器 |
| Content | NextPDF\Content | 文字、HTML、斷字、JavaScript |
| Contracts | NextPDF\Contracts | 所有公開介面定義 |
| Core | NextPDF\Core | Document、Process、DocumentFactory |
| Form | NextPDF\Form | AcroForm、ISO 32000-2 §12.7 |
| Graphics | NextPDF\Graphics | 繪圖引擎、影像、色彩、變換 |
| Html | NextPDF\Html | HTML/CSS 子集渲染器 |
| Layout | NextPDF\Layout | 欄位、頁首頁尾、小冊子、區域 |
| Navigation | NextPDF\Navigation | 書籤、連結、目錄、附件 |
| Security | NextPDF\Security | 加密、數位簽章、時間戳記、權限 |
| Support | NextPDF\Support | 工具類別、例外階層 |
| Typography | NextPDF\Typography | 字型登錄、子集化、雙向排版、CJK |
| ValueObjects | NextPDF\ValueObjects | PageSize、Margin、Dimension、Position |
| Writer | NextPDF\Writer | 序列化、線性化、檢視器偏好設定 |
| Accelerator | NextPDF\Accelerator | Spectrum FFI 橋接(可選) |
進入點¶
Core 提供兩個主要進入點,對應不同的部署情境:
use NextPDF\Core\Document;
use NextPDF\Core\DocumentFactory;
use NextPDF\Core\Process;
// 情境 1:獨立 CLI / 長時間執行程式
// Process 管理跨文件的共享資源(FontRegistry、ImageRegistry)
$process = Process::create();
$factory = $process->factory();
$document = $factory->create(/* config */);
// 情境 2:無狀態 Workers(Cloudflare Workers、Gotenberg)
// DocumentFactory::create() 每次呼叫都是獨立實例
$document = Document::createStandalone(/* config */);
支援標準¶
| 標準 | 規格 | 狀態 |
|---|---|---|
| PDF 2.0 | ISO 32000-2:2020 | 完整實作 |
| PDF/A-4 | ISO 19005-4:2020 | 透過 Enterprise |
| PDF/UA-2 | ISO 14289-2 | Core 內建 |
| PAdES B-B | ETSI EN 319 142-1 | Core 內建 |
| PAdES B-LTA | ETSI EN 319 142-1 | 透過 Pro |
| ZUGFeRD 2.3 | EN 16931 | 透過 Enterprise |
| RFC 3161 | 時間戳記 | Core 內建 |
安裝¶
PHP 8.5+ 必要。Rust FFI 加速器(Spectrum)為可選元件,需另行安裝二進位檔。
參見¶
- 設定選項 — 所有設定項目與預設值
- 文件生命週期 — Process、Factory、Document 三層架構
- Value Objects — PageSize、Margin 等不可變值物件
- 字型管理 — FontRegistry 與字型載入