このドキュメントでは FPDI 2 について説明します。バージョン 1 は非推奨となり、開発は中止されました。
FPDI は、開発者が既存の PDF ドキュメントからページを読み取り、それらを FPDF のテンプレートとして使用できるようにする PHP クラスのコレクションであり、Olivier Plathey によって開発されました。 FPDF のコピーを除けば、FPDI には特別な PHP 拡張機能は必要ありません。
FPDI は、TCPDF または tFPDF の拡張機能としても使用できます。
FPDI は FPDF、TCPDF、または tFPDF で使用できるため、メインのcomposer.json ファイルには修正された依存関係を追加していません。選択した PDF 生成ライブラリに依存関係を自分で追加する必要があります。
FPDF で FPDI を使用するには、composer.json ファイルに以下を含めます。
{"require": {"setasign/fpdf": "1.8.*","setasign/fpdi": "^2.5"}
}TCPDF を使用したい場合は、composer.json を次のように更新する必要があります。
{"require": {"tecnickcom/tcpdf": "6.6.*","setasign/fpdi": "^2.5"}
}tFPDF を使用したい場合は、composer.json を次のように更新する必要があります。
{"require": {"setasign/tfpdf": "1.33.*","setasign/fpdi": "^2.3"}
}Composer を使用しない場合は、/src フォルダー内の autoload.php を要求するだけです。
require_once('src/autoload.php');PSR-4 オートローダーを実装している場合は、次のように src パスを登録するだけです。
$loader = 新しい ExamplePsr4AutoloaderClass;$loader->register();$loader->addNamespace('setasignFpdi', 'path/to/src/');バージョン 2 は、FPDI を最初から完全に書き直したもので、以下が付属します。
名前空間付きコード
クリーンで最新のコードベースとスタイル
PSR-4互換のオートローディング
パフォーマンスが最大 100% 向上
メモリ消費量の削減
文字列またはストリームリソースから PDF を読み取るためのネイティブサポート
ファイルヘッダーの前に「無効な」データを含むドキュメントのサポート
最適化されたページツリー解決
個別の例外の使用法
いくつかのテスト タイプ (単体テスト、機能テスト、ビジュアル テスト)
主なメソッドと論理ワークフローをバージョン 1 と同じに保つよう努めましたが、バージョン 2 に更新するときに考慮する必要がある互換性のない変更があることに注意してください。
classes/FPDI.phpの代わりにsrc/autoload.phpファイルを使用してコードをロードする必要があります。
クラスと特性には名前空間が設定されています: setasignFpdi
/MediaBoxなどのスラッシュで始まるページ境界はサポートされなくなりました。スラッシュを削除するか、 PdfReaderPageBoundariesの定数を使用します。
useTemplate()またはgetTemplateSize()メソッドのパラメーター $x、$y、$width、$height に、より論理的に正しいデフォルト値が追加されました。幅または高さとして0渡すと、 InvalidArgumentException発生するようになりました。
getTemplateSize()の戻り値は、よりスピーキングキーと再利用性を備えた配列に変更されました。 wの代わりにwidth使用し、 hの代わりにheight使用します。
TCPDF で FPDI を使用する場合は、 FPDIの代わりにクラスTcpdfFpdi (2.1 以降、以前はTcpdfFpdi ) を使用するようにコードをリファクタリングする必要があります。
単一のページをインポートし、これを新しく作成されたページに配置する簡単な例:
<?phpuse setasignFpdiFpdi;// または TCPDF:// で使用する場合は setasignFpdiTcpdfFpdi;// または tFPDF:// で使用する場合は setasignFpdiTfpdfFpdi;// 自動ロード関数をセットアップするrequire_once('vendor/autoload.php');// 開始FPDI$pdf = new Fpdi();// を追加しますpage$pdf->AddPage();// ソースファイルを設定 $pdf->setSourceFile("Fantastic-Speaker.pdf");// ページをインポート 1$tplId = $pdf->importPage(1);// 使用インポートされたページをポイント 10,10 に幅 100 mm で配置します$pdf->useTemplate($tplId, 10, 10, 100);$pdf->出力();完全なエンドユーザー ドキュメントと API リファレンスは、ここから入手できます。