コンテンツにスキップ

インテグレーションクックブック

NextPDF core は PHP から PDF 2.0 をレンダリングします。エコシステムに含まれる 9 つのインテグレーションパッケージは、このエンジンをフレームワーク、レンダリングバックエンド、レガシーコードベース、ビルドパイプライン、またはネットワークサービスに接続します。このページでは、各インテグレーションの用途を説明し、それぞれのパッケージ名と core バージョン制約を(各パッケージの composer.json から直接読み取って)記録し、各ソースリポジトリの docs/public/ ツリーが公開されるのに合わせて本サイトに掲載される各インテグレーションのレシピへのリンクを示します。

このページはインデックスであるため、いずれのインテグレーションについても動作に関する主張は行いません。各インテグレーションのレシピは、そのインテグレーション自身のリポジトリが所有します。アグリゲーターがそれらを本サイトに取り込みます。レシピが掲載されるまでは、以下のリンクはプレースホルダーを指します。ユースケースに基づく推奨については、インテグレーションの選択 をお読みください。実行可能なすべてのレシピが従う規約については、レシピの規約 をお読みください。

9 つのパッケージは 5 つの形態に分類されます。形態を見ると、そのインテグレーションがどのような種類の問題に対処するものかが分かります。

  • フレームワークインテグレーション は、NextPDF をアプリケーションフレームワークのサービスコンテナとリクエストライフサイクルに組み込みます:nextpdf/laravelnextpdf/symfonynextpdf/codeigniter。いずれか 1 つをインストールし、サービスを resolve(解決)して、PDF レスポンスを返します。
  • レンダラーブリッジ は、HTML から PDF、または Office から PDF への変換ステップを、インプロセスのパイプラインではなく外部のレンダリングバックエンドに委譲します:nextpdf/artisan(Chrome DevTools Protocol 経由のヘッドレス Chrome)、nextpdf/gotenberg(Gotenberg マイクロサービス)、nextpdf/cloudflare(エッジでの Cloudflare Browser Rendering)。
  • 互換シム は、レガシーな PDF ライブラリ向けに書かれたコードベースが、書き換えなしで NextPDF を呼び出せるようにします:nextpdf/compat-legacy
  • ビルドツール は、8.4 を実行できないランタイム向けに NextPDF の PHP 8.1 / 7.4 バックポートを生成します:nextpdf/backport-builder
  • ネットワークサービス は、AI システムやリモートの呼び出し元向けに、REST、gRPC、および Model Context Protocol を通じて NextPDF を公開します:nextpdf/server(NextPDF Connect として配布)。

HTTP を用いるレンダラーブリッジ(nextpdf/gotenbergnextpdf/cloudflare、および nextpdf/laravel 内の HTTP クライアントパス)は、ホストアプリケーションが提供する PSR-18 HTTP クライアントに依存します。PSR-18 クライアントは、リクエストをまったく送信できない場合にのみ、型付けされたクライアント例外を送出します。これは、適用される PSR-18 §4 で規定されているとおりです。HTTP の 4xx または 5xx レスポンスは、例外ではなく通常の戻り値です。これも同じ PSR-18 §4 に規定されています。リモートレンダラーを呼び出すレシピは、トランスポートエラーと非成功ステータスを 2 つの別々のケースとして処理します。

以下の各値は、記載されているパッケージの composer.json(信頼できる情報源)から読み取ったものです。core 制約は、パッケージが宣言する nextpdf/core の要件です。nextpdf/backport-buildernextpdf/core の要件を宣言しません。これは、実行時にエンジンへ依存するのではなく、エンジンのソースを変換するためです。

インテグレーションパッケージ形態core の制約レシピ
Laravelnextpdf/laravelフレームワーク^3.0 || ^5.2Laravel クイックスタート [[/integrations/laravel/quickstart/]]
Symfonynextpdf/symfonyフレームワーク^3.0 || ^5.2Symfony クイックスタート [[/integrations/symfony/quickstart/]]
CodeIgniter 4nextpdf/codeigniterフレームワーク^3.0 || ^5.2CodeIgniter クイックスタート [[/integrations/codeigniter/quickstart/]]
Artisan(Chrome ブラウザー)nextpdf/artisanレンダラーブリッジ^3.0 || ^5.2Artisan クイックスタート [[/integrations/artisan/quickstart/]]
Gotenbergnextpdf/gotenbergレンダラーブリッジ^3.0Gotenberg クイックスタート [[/integrations/gotenberg/quickstart/]]
Cloudflarenextpdf/cloudflareレンダラーブリッジ^3.0Cloudflare クイックスタート [[/integrations/cloudflare/quickstart/]]
Compat(レガシー)nextpdf/compat-legacy互換シム^3.0Compat-legacy クイックスタート [[/integrations/compat-legacy/quickstart/]]
Backport ビルダーnextpdf/backport-builderビルドツール該当なしBackport クイックスタート [[/integrations/backport/quickstart/]]
Connect(サーバー)nextpdf/serverネットワークサービス^3.0Connect クイックスタート [[/integrations/connect/quickstart/]]

NextPDF は nextpdf/server を製品名 NextPDF Connect として配布します。そのレシピは connect スラッグの下に配置されます。nextpdf/compat-legacycompat ファミリーから提供されます。そのレシピは compat-legacy スラッグの下に配置されます。

いずれのパッケージも、自身のランタイムで PHP >=8.4 <9.0 を必要とします。nextpdf/backport-builder は、PHP 8.1(および 7.4 ターゲット)で実行されるアーティファクトを生成するために特別に存在します。古いランタイムで実行されるのは、ビルダーではなく、生成されたバックポート済みのエンジンです。

  • nextpdf/laravel — Laravel 12 のサービスプロバイダー、ファサード、および PDF レスポンスヘルパーです。アプリケーションが Laravel アプリであり、手作業による配線なしで NextPDF をコンテナから解決して HTTP レスポンスとして返したい場合に使用します。レシピ:[[/integrations/laravel/quickstart/]]。
  • nextpdf/symfony — 依存性注入サービスと PDF レスポンスヘルパーを備えた Symfony 7 のバンドルです。アプリケーションが Symfony アプリである場合に使用します。このバンドルはエンジンをサービスとして登録し、symfony/http-foundation のレスポンスと統合します。レシピ:[[/integrations/symfony/quickstart/]]。
  • nextpdf/codeigniter — CodeIgniter 4 のサービス、ライブラリラッパー、および PDF レスポンスヘルパーです。アプリケーションが CodeIgniter 4 アプリであり、フレームワークのサービスロケーターを通じて NextPDF を利用したい場合に使用します。レシピ:[[/integrations/codeigniter/quickstart/]]。
  • nextpdf/artisan — Chrome DevTools Protocol を介したヘッドレス Chrome レンダラーです。ドキュメントで、インプロセスの HTML パイプラインでは対象外となるレイアウト忠実度を得るためにブラウザーの CSS エンジンが必要であり、かつアプリケーションの近くで Chrome プロセスを実行できる場合に使用します。レシピ:[[/integrations/artisan/quickstart/]]。
  • nextpdf/gotenberg — Gotenberg マイクロサービスを通じた、Office から PDF および HTML から PDF への変換です。入力が Office ドキュメントである場合、またはレンダリングを別のサービスでアウトオブプロセスで実行する必要がある場合に使用します。このインテグレーションは、ホストが提供する PSR-18 クライアントを介して HTTP で通信します。レシピ:[[/integrations/gotenberg/quickstart/]]。
  • nextpdf/cloudflare — Cloudflare Browser Rendering API を介したサーバーレスレンダリングです。長時間稼働のブラウザープロセスを運用せず、レンダリングをエッジで実行したい場合に使用します。このインテグレーションは、ホストが提供する PSR-18 クライアントを介して HTTP で通信します。レシピ:[[/integrations/cloudflare/quickstart/]]。
  • nextpdf/compat-legacy — レガシーな PDF ライブラリ向けに書かれたコードベースのための互換レイヤーです。呼び出し箇所を先に書き換えることなく、既存のコードから NextPDF を呼び出すために使用します。これは移行を補助するものであり、恒久的な依存関係ではありません。レシピ:[[/integrations/compat-legacy/quickstart/]]。
  • nextpdf/backport-builder — NextPDF の PHP 8.1(および 7.4 ターゲット)ビルドを生成する、Rector ベースのダウングレードパイプラインです。ランタイムを PHP 8.4 に移行できないものの、その環境でエンジンを必要とする場合に使用します。これはビルドインフラストラクチャであり、アプリケーションのランタイム依存関係には追加されません。レシピ:[[/integrations/backport/quickstart/]]。
  • nextpdf/server(NextPDF Connect) — NextPDF を REST API、gRPC サービス、および Model Context Protocol を通じて公開します。呼び出し元がリモートにある場合、別の言語で記述されている場合、または PHP ライブラリではなくツールエンドポイントを必要とする AI システムである場合に使用します。レシピ:[[/integrations/connect/quickstart/]]。

上記の各 [[…]] プレースホルダーは、各インテグレーション自身のリポジトリ内の docs/public/ 配下で執筆され、アグリゲーターによって本サイトに取り込まれるページへの前方参照です。ターゲットのスラッグは、次の 1 つの規則に従います。

/integrations/<integration>/<recipe>/

この <integration> トークンは、上記のパッケージと core 制約のリファレンス表から直接取得される短い名前です。その表の各行が、こうした短い名前を 1 つずつ提供します。各インテグレーションが最初に提供するレシピは quickstart という名前です。それ以降のレシピは、追加の <recipe> セグメントを、同じ <integration> ルートの下で使用します。ターゲットページが aggregate(集約)されるまでは、そのリンクはプレースホルダーであり、解決されません。このインデックスは、いずれのターゲットページについても動作に関する主張は行いません。記録するのは、composer.json から検証されたパッケージの事実と、各リポジトリのレシピが使用するスラッグのみです。