Skip to content

比較與部署指南

不確定需要哪些套件?使用下方的互動式精靈,或瀏覽部署情境與決策矩陣,找到最適合您的設定。

找到您的完美設定

1
專案類型
2
PHP 版本
3
框架
4
HTML 轉 PDF
5
Pro 功能

專案類型

產生您的設定

設定產生器

選擇套件和選項,自動產生可直接使用的設定檔。

Core 始終包含在內

基礎映像
composer require yeeefang/tcpdf-next

部署情境

不同的主機環境有不同的功能支援。以下是各環境的最佳搭配:

🏠

共享主機

效能
推薦套件
Core Core

有限的 PHP 存取,無 Shell。僅 Core 搭配基本字型。無 Chrome/RoadRunner。

🖥

VPS (PHP-FPM)

效能
推薦套件
Core CoreArtisan ArtisanLaravel Laravel

完整伺服器控制。安裝 Chrome 支援 HTML→PDF。適合大部分應用。

🖥

VPS + RoadRunner

RoadRunner
效能
推薦套件
Core CoreArtisan ArtisanLaravel Laravel

常駐 Worker 消除冷啟動。吞吐量提升 3-7 倍。

專用伺服器

效能
推薦套件
Core CoreArtisan ArtisanPro ProLaravel Laravel

完整資源。適合 Pro 功能(PAdES、PDF/A-4、HSM)。

專用伺服器 + RoadRunner

RoadRunner
效能
推薦套件
Core CoreArtisan ArtisanPro ProLaravel Laravel

最大吞吐量。4 Workers 可達 9,000+ docs/s。

Kubernetes / Docker

RoadRunner
效能
推薦套件
Core CoreArtisan ArtisanPro ProSymfony Symfony

水平擴展。RoadRunner 作為 Worker 程序。生產級部署。

效能:標準 PHP-FPM vs RoadRunner

RoadRunner 將您的 PHP 應用程式保留在記憶體中作為持久化工作程序,消除冷啟動並大幅提升吞吐量。

標準 PHP-FPM vs RoadRunner

▲ 越高越好
PHP-FPM RoadRunner
簡單文件
390 docs/s
2,605 docs/s
6.7x 更快
發票
294 docs/s
1,960 docs/s
6.7x 更快
100 頁報告
14 docs/s
98 docs/s
7.0x 更快
4 Workers
1,500 docs/s
9,221 docs/s
6.1x 更快

PHP 8.5.3 + OPcache + JIT · Docker 4 CPUs / 16 GB · i9-13900K · 20 次中位數

何時使用 RoadRunner

當您需要高吞吐量(每分鐘數百個 PDF)或低延遲(亞毫秒級回應時間)時,建議使用 RoadRunner。對於每次請求只產生少量 PDF 的典型 Web 應用程式,標準 PHP-FPM 完全足夠。

使用情境決策矩陣

針對您的特定使用情境,應該安裝哪些套件?

\u{2705} 推薦\u{26AA} 可選 不適用
使用場景Core CoreArtisan ArtisanPro ProLaravel LaravelSymfony SymfonyCI4 CI4Adaptation Adaptation
發票與報表產生
電商(HTML→PDF)
無障礙文件(PDF/UA)
數位簽章(PAdES)
舊版 TCPDF 遷移
高吞吐量 API
歸檔合規(PDF/A-4)
大量條碼文件

套件相容性

大多數套件可以無縫搭配使用,但有一個例外:

組合相容備註
Core + 任何套件Core 是必要的基礎套件
Artisan + 任何框架Chrome CDP 適用於所有框架
Pro + Laravel/Symfony/CI在任何框架中都能使用完整的企業級功能
Pro + AdaptationAdaptation 封裝了舊版 TCPDF API;Pro 擴展了現代 TCPDF-Next API。請選擇其中一種方式。
Adaptation + 框架使用 Adaptation 在您的框架中遷移舊版程式碼

CJK 與字型注意事項

內建的 Basic 14 字型(Helvetica、Times、Courier 等)僅支援拉丁字元。如果您的文件需要中文、日文或韓文文字,您必須:

  1. 嵌入 TrueType 字型 — 使用 setFont() 搭配支援您所需字元集的 TTF 字型
  2. 設定字型路徑 — 設定 TCPDF_FONTS_DIR 環境變數或使用設定 API
  3. 考慮檔案大小 — CJK 字型通常每個 5-15 MB;使用字型子集化來減小 PDF 大小
php
// 範例:使用 CJK 字型
$pdf = Document::createStandalone()
    ->addPage()
    ->setFont('/path/to/NotoSansCJK-Regular.ttf', '', 12)
    ->cell(0, 10, '你好世界 こんにちは 안녕하세요');

推薦的 CJK 字型

  • Noto Sans CJK — Google 的開源 CJK 字型家族(免費)
  • Source Han Sans — Adobe 的同等產品(免費)
  • 兩者都在單一字型檔案中支援簡體中文、繁體中文、日文和韓文。

共享主機限制

在共享主機上,您通常無法:

  • 安裝 Chrome/Chromium(無法使用 Artisan 套件)
  • 執行長期運行的程序(無法使用 RoadRunner)
  • 安裝 PHP 擴充套件(僅限主機提供的部分)

共享主機的建議設定:

bash
composer require yeeefang/tcpdf-next

僅使用 Core 搭配內建的 HTML 解析器來滿足基本的 HTML 轉 PDF 需求。如果需要像素級精確的 HTML 渲染,建議升級到 VPS。

下一步

以 LGPL-3.0-or-later 授權釋出。