コンテンツにスキップ

NextPDF compat-legacy のインストール手順

nextpdf/compat-legacy は Composer ライブラリです。PHP 8.4 以降と nextpdf/core ^3.0 が必要です。インストールしても、既存の TCPDF 呼び出しは変更されません。切り替え先となるクラスが追加されるだけです。

依存関係バージョン正規の情報源
PHP>=8.4 <9.0パッケージの composer.jsonrequire.php
nextpdf/core^3.0パッケージの composer.jsonrequire
Composer2.7 以降ツールチェーンの基準

このパッケージは、ベースラインなしで PHPStan Level 10 を宣言しており、独自のテストスイートを同梱しています。実行時には PHP 8.4 が必要です。NextPDF エンジン全体はバックポートライン経由で PHP 8.1 から 8.4 までをサポートしますが、このアダプターは PHP 8.4 を下限として固定します。

Composer でパッケージを追加します。

Terminal window
composer require nextpdf/compat-legacy:^3.0

Composer は nextpdf/core ^3.0 を推移的依存関係として解決します。コア機能セットでは、他の実行時拡張は必要ありません。

パッケージのメタデータは、Composer の replace エントリを通じて、 従来の名前である nextpdf/compat-tcpdf にも応答します。新規のインストールでは nextpdf/compat-legacy を require してください。これが正規のパッケージ名です。

インストール後、アダプタークラスが読み込まれ、エンジンとのリンクが解決されることを確認します。次のチェックは、メモリ上だけで 1 ページの PDF を生成し、PDF ヘッダーをアサートします。これは、パッケージのテスト tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php がアサートしているのと同じ観点です。

examples/install-verify.php
<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Compat\Tcpdf\TCPDF;
$pdf = new TCPDF('P', 'mm', 'A4');
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$pdf->Cell(0, 10, 'compat-legacy install verified');
$bytes = $pdf->Output('verify.pdf', 'S');
if (! str_starts_with($bytes, '%PDF')) {
fwrite(STDERR, "Install check failed: output is not a PDF.\n");
exit(1);
}
echo "OK: adapter loaded, engine linked, PDF produced (" . strlen($bytes) . " bytes).\n";

これを実行します。

Terminal window
php examples/install-verify.php

期待される出力は、単一の OK: 行です。返された文字列の %PDF プレフィックスにより、アダプターが NextPDF\Core\Document を構築し、ページとテキストの呼び出しを委譲して、有効な PDF 2.0 出力をシリアライズしたことを確認できます。

アダプターには nextpdf/core ^3.0 が必要です。解決されたバージョンを確認します。

Terminal window
composer show nextpdf/core --format=json

Composer が ^3.0 の範囲外のコアバージョンを解決した場合、アダプターは誤った出力を生成するのではなく、構築時に早期に失敗します。プロジェクトがエンジンに直接依存している場合は、composer.json でエンジンを明示的に固定してください。

コードベースがグローバル名前空間の new \TCPDF(...) を呼び出しており、それらの use/require 行をまだ変更できない場合、パッケージはグローバルエイリアスを登録できます。これはオプトインであり、/integrations/tcpdf-compat/boot-and-discovery/. で説明されています。同じプロセスに本物の TCPDF ライブラリがインストールされている場合は、これを有効にしないでください。競合回避ルールについては /integrations/tcpdf-compat/troubleshooting/ を参照してください。

  • 既存の TCPDF 依存関係を変更したり削除したりすることはありません。tecnickcom/tcpdf の削除は、/integrations/tcpdf-compat/migration/. における意図的な後続ステップです。
  • デジタル署名や PDF/A を有効にすることはありません。これらには商用版の NextPDF エディションが必要です(/integrations/tcpdf-compat/security-and-operations/ を参照)。
  • PDF 出力のターゲットを変更することはありません。出力は常に PDF 2.0 です。
  • /integrations/tcpdf-compat/quickstart/ — 最初の実際のドキュメントを生成します。
  • /integrations/tcpdf-compat/configuration/ — 厳格モードとアダプターの設定。
  • /integrations/tcpdf-compat/migration/ — ファイル単位の移行戦略。
  • /integrations/tcpdf-compat/method-coverage/ — 各 TCPDF メソッドがこの互換レイヤーでどう動作するかの詳細。
  • パッケージの composer.json — 正規の依存関係制約
  • docs/TCPDF_COVERAGE.md — 正規のカバレッジマトリクス(リポジトリ内)