コンテンツにスキップ
getnextpdf.com

NextPDF への移行

NextPDF は PHP 向けの PDF 2.0 エンジンです。すでに別のライブラリで PDF を生成している場合、移行ガイドでは、そのライブラリの API を NextPDF にマッピングし、遭遇する振る舞いの差異を文書化します。このページはリポジトリ横断のインデックスです。どのガイドがどのライブラリからの移行を対象にするか、各ガイドをどのリポジトリが所有するか、そしてすべてのガイドが共有する単一のモデルとは何かを記録します。

このページはインデックスであるため、いずれのガイドについても振る舞いに関する主張は行いません。各ガイドは、それぞれ独自のリポジトリによって所有されており、アグリゲーターがそれをこのサイトに公開します。振る舞いに関するすべての主張はガイド自体に記載されており、リポジトリ内のテストまたは固定された ISO 32000-2 / CSS WG の条項によって裏付けられています。このページでは扱いません。

すべての NextPDF 移行ガイドは、1 つの誠実なモデルを共有しています。各ガイドは、このモデルを前提にお読みください。

  • バイト一致ではなく互換。 NextPDF と移行元のライブラリは、独立した実装です。移行するドキュメントは、ピクセル単位やバイト単位で同一になるのではなく、意図された機能において等価です。いずれのガイドも、ドロップイン置換や 100% の互換性を主張していません。
  • カバレッジは主張ではなく、測定された数値です。 ガイドがカバレッジの数値を示している場合(たとえば TCPDF アダプター)、その数値は ISO/IEC 25023 条項 43 の意味における、リポジトリ内のマトリックスから導出された機能的完全性のメトリクスです。これは、カバー済みメソッドを測定した数であり、一律の保証ではありません。
  • 各ガイドは、振る舞いの差異を明確に記載しています。 すべてのガイドには、明示的な差異の表と「未サポート/直接の等価物なし」のセクションが含まれています。差異は、文書化されたエンジンの特性であり、欠陥ではありません。
  • レンダラーの変更には再レビューが必要です。 移行では、コードの変更に加えて、出力の再ベースライン化が必要です。各ガイドは、移行をテストする方法を説明しています。視覚的な受け入れはドキュメントごとに行われ、インテグレーターの責任です。

ガイドは 2 つの形態に分かれます。形態は、コード変更の規模を示します。

  • API 書き換え移行には互換シムがありません。ガイドの動詞マッピングとオプションマップを使用して、すべての呼び出し箇所を書き換えます。 HTML-to-PDF ライブラリの移行 (dompdfmpdf) はこの形態です。これらは NextPDF Html パイプラインを直接ターゲットとします。
  • ドロップイン後に移行する移行では、ソース互換に近いアダプターが提供されるため、最初の移行は依存関係の最小限の入れ替えで済みます。そこから、呼び出し箇所をモダンな API へ段階的に移行し、その後アダプターを廃止します。TCPDF の移行はこの形態であり、nextpdf/compat-legacy アダプターを介して行われます。

以下の各ガイドは、所有リポジトリの docs/public/ に存在し、アグリゲーターが各ページをこのサイトに取り込みます。所有リポジトリは、そのガイドの振る舞いに関する主張について権威ある情報源です。このインデックスは、ルーティングのみを記録します。

移行元ガイド形態所有リポジトリページ
DompdfDompdf → NextPDF Html パイプラインAPI 書き換えnextpdf (コア)Dompdf ガイド
mPDFmPDF → NextPDF コアAPI 書き換えnextpdf (コア)mPDF ガイド
FPDFFPDF → NextPDF コアAPI 書き換えnextpdf (コア)FPDF ガイド
TCPDF 6.xTCPDF → NextPDF (compat-legacy アダプター経由)ドロップイン後に移行nextpdf-compat-tcpdf リポジトリ、パッケージ nextpdf/compat-legacyTCPDF ガイド

上記の dompdfmpdffpdf のガイドは、コアエンジンの API をターゲットとするため、コアリポジトリに置かれており、コアの examples/ がそれらを裏付けます。tcpdf-compat ガイドは compat-tcpdf リポジトリに存在します。これは、nextpdf/compat-legacy パッケージが TCPDF の振る舞い面と、ガイドを裏付けるアダプターのテストを所有しているためです。このインデックスは複数のリポジトリにまたがるため、ドキュメントネイティブに置かれており、そのいずれについても振る舞いに関する主張は行いません。

  • Dompdf → NextPDF — サーバーサイドで dompdf/dompdf を使用しているコードベース向けです。loadHtml/render/outputOptions のキーを NextPDF Html パイプラインにマッピングし、CSS 機能の期待値は Verified-only の CSS サポートマトリックスに委ねます。Dompdf クラスのシムはありません。すべての呼び出し箇所を書き換えます。
  • mPDF → NextPDFmpdf/mpdf を使用しているコードベース向けです。WriteHTML/Output/AddPage とコンストラクターの設定配列をコア API にマッピングします。ただし、フォント処理に差異があります。NextPDF は単一のフォントディレクトリと CSS マッチングを通じて resolve(解決)を行い、常にサブセット化します。Mpdf クラスのシムはありません。
  • FPDF → NextPDF — FPDF の描画 API を直接使用しているコードベース向けです。AddPage/SetFont/Cell/MultiCell/Write/Text/Image/Output と手動のカーソルモデルをコア API にマッピングし、単位の差異を文書化します。FPDF クラスのシムはありません。
  • TCPDF → NextPDF (compat-legacy) — 最初の変更を最小限に抑えたい TCPDF 6.x のコードベース向けです。アダプターをインストールし、リポジトリ内のカバレッジマトリックスに対して strict モードで実際の使用面を監査し、呼び出し箇所をアダプターから移行したうえで、その上に PDF/UA-2 のタグ付き構造を追加します。これは、TCPDF にはなかった機能です。アダプターは足場であり、最終的な到達点でも、ドロップインの保証でもありません。
  • CSS サポートマトリックスdompdfmpdf のガイドが CSS 機能の期待値を委ねる、Verified-only の権威ある情報源です。
  • 統合クックブック — エコシステムの統合パッケージのためのリポジトリ横断インデックスです(これは別の関心事であり、対象はエンジンへの移行ではなく、エンジンへの接続です)。