mPDFでテンプレートを使用してPDFを出力する方法
はじめに
mPDFは、PHPでPDFを出力する際に使用されるライブラリです。
インストール方法などはマニュアルをご参照ください。
本記事は、すでにmPDFクラスを使用できる状態になっている前提で進めます。
結論
テンプレートのPDFを使用する場合、以下のように実装します。
1. インスタンス生成
まずはmPDFクラスのインスタンスを生成します。
今回は、OutputPDFController
というファイルでPDFを生成するという想定で進めます。
OutputPDFController.php$mpdf = new Mpdf();
2. テンプレートPDFを配置
今回は、下記のパスにテンプレートのPDFを配置します。
├── OutputPDFController.png └── PDF └── template.pdf
3. テンプレートPDFのパスを指定
OutputPDFController.php$template = $mpdf->setSourceFile(__DIR__ . '/PDF/template.pdf');
4. importPageメソッドを呼び出す
OutputPDFController.php$tplId = $mpdf->importPage($template);
5. UseTemplateメソッドを呼び出す
OutputPDFController.php$mpdf->UseTemplate($tplId);
6. Outputメソッドを呼び出す
今回は、コントローラーのaction
からreturn
してやることでPDFを出力します。
OutputPDFController.phpreturn $this->response->withType('pdf') ->withHeader('Content-Disposition', "attachment;filename*=UTF-8''test.pdf") ->withStringBody($mpdf->Output('', 'S'));
ここまでで、以下のようなコードになります。
├── OutputPDFController.png └── PDF └── template.pdf
OutputPDFController.php$mpdf = new Mpdf(); $template = $mpdf->setSourceFile(__DIR__ . '/PDF/template.pdf'); $tplId = $mpdf->importPage($template); $mpdf->UseTemplate($tplId); return $this->response->withType('pdf') ->withHeader('Content-Disposition', "attachment;filename*=UTF-8''test.pdf") ->withStringBody($mpdf->Output('', 'S'));
mPDFのドキュメントでは、下記のページに記載されています。
https://mpdf.github.io/reference/mpdf-functions/usetemplate-v8.html
お役に立てれば幸いです!
それでは。