比較・デプロイガイド
どのパッケージが必要かわからない場合は、以下のインタラクティブウィザードを使用するか、デプロイシナリオとデシジョンマトリクスを参照して、最適なセットアップを見つけてください。
最適なセットアップを見つける
プロジェクトタイプ
セットアップを生成
セットアップジェネレーター
パッケージとオプションを選択して、すぐに使える設定ファイルを生成します。
composer require yeeefang/tcpdf-nextデプロイシナリオ
ホスティング環境によって利用できる機能が異なります。各環境に最適な構成は以下の通りです:
共有ホスティング
PHPアクセス制限あり。Coreのみ、基本フォント。Chrome/RoadRunner不可。
VPS (PHP-FPM)
フルサーバー制御。Chrome導入でHTML→PDF対応。ほとんどのアプリに最適。
VPS + RoadRunner
RoadRunner常駐ワーカーでコールドスタート排除。スループット3-7倍向上。
専用サーバー
完全なリソース。Pro機能(PAdES、PDF/A-4、HSM)に最適。
専用サーバー + RoadRunner
RoadRunner最大スループット。4ワーカーで9,000+ docs/s。
Kubernetes / Docker
RoadRunner水平スケーリング。RoadRunnerをワーカープロセスとして使用。本番グレード。
パフォーマンス:標準 PHP-FPM vs RoadRunner
RoadRunner は PHP アプリケーションを永続ワーカーとしてメモリ上に保持し、コールドスタートを排除してスループットを大幅に向上させます。
標準 PHP-FPM vs RoadRunner
▲ 高い方が良いPHP 8.5.3 + OPcache + JIT · Docker 4 CPUs / 16 GB · i9-13900K · 20回の中央値
RoadRunner を使用すべきタイミング
高スループット(毎分数百の PDF)や低レイテンシー(サブミリ秒の応答時間)が必要な場合は、RoadRunner の使用を推奨します。リクエストごとに少数の PDF を生成する一般的な Web アプリケーションでは、標準の PHP-FPM で十分です。
ユースケースデシジョンマトリクス
特定のユースケースに対して、どのパッケージをインストールすべきでしょうか?
| ユースケース | |||||||
|---|---|---|---|---|---|---|---|
| インボイス・レポート生成 | ✅ | ⚪ | ⚪ | ⚪ | ⚪ | ⚪ | — |
| ECサイト(HTML→PDF) | ✅ | ✅ | ⚪ | ⚪ | ⚪ | ⚪ | — |
| アクセシブル文書(PDF/UA) | ✅ | — | ✅ | ⚪ | ⚪ | ⚪ | — |
| デジタル署名(PAdES) | ✅ | — | ✅ | ⚪ | ⚪ | ⚪ | — |
| レガシーTCPDF移行 | ✅ | ⚪ | — | ⚪ | ⚪ | ⚪ | ✅ |
| 高スループットAPI | ✅ | ⚪ | ⚪ | ✅ | ✅ | ⚪ | — |
| アーカイブ準拠(PDF/A-4) | ✅ | — | ✅ | ⚪ | ⚪ | ⚪ | — |
| バーコード多用文書 | ✅ | — | ⚪ | ⚪ | ⚪ | ⚪ | — |
パッケージの互換性
ほとんどのパッケージはシームレスに連携できますが、1つだけ例外があります:
| 組み合わせ | 互換性 | 備考 |
|---|---|---|
| Core + 任意のパッケージ | あり | Core は常に必須です |
| Artisan + 任意のフレームワーク | あり | Chrome CDP はすべてのフレームワークで動作します |
| Pro + Laravel/Symfony/CI | あり | どのフレームワークでも完全なエンタープライズ機能を利用可能 |
| Pro + Adaptation | なし | Adaptation はレガシー TCPDF API をラップします。Pro はモダンな TCPDF-Next API を拡張します。どちらか一方を選択してください。 |
| Adaptation + フレームワーク | あり | Adaptation を使用してフレームワーク内でレガシーコードを移行 |
CJK とフォントに関する注意事項
組み込みの Basic 14 フォント(Helvetica、Times、Courier など)はラテン文字のみをサポートしています。ドキュメントに中国語、日本語、または韓国語のテキストが必要な場合は、以下の対応が必要です:
- TrueType フォントを埋め込む —
setFont()で必要な文字セットをサポートする TTF フォントを指定します - フォントパスを設定する —
TCPDF_FONTS_DIR環境変数を設定するか、設定 API を使用します - ファイルサイズを考慮する — CJK フォントは通常 1 つあたり 5〜15 MB です。フォントサブセッティングを使用して PDF サイズを削減してください
// 例: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 拡張のインストール(提供されているものに限定)
共有ホスティングの推奨セットアップ:
composer require yeeefang/tcpdf-next基本的な HTML から PDF への変換には、Core のみと組み込みの HTML パーサーを使用してください。ピクセル単位で正確な HTML レンダリングが必要な場合は、VPS へのアップグレードを検討してください。
次のステップ
- はじめに — インストールして最初の PDF を作成
- インストールガイド — すべてのパッケージの詳細なインストール手順
- ベンチマーク — 完全なパフォーマンス比較データ
- TCPDF からの移行 — ステップバイステップの移行ガイド