【TCPDF+FPDI】Laravelでテンプレートを使ってPDF出力する

【TCPDF+FPDI】Laravelでテンプレートを使ってPDF出力する

はじめに

帳票の印刷など、プログラムでPDFを出力する機会は比較的多くあります。LaravelでPDFを簡単に出力できるので、その方法をご紹介します。

TCPDFとFPDIをインストール

composerでインストールします。

composer require tecnickcom/tcpdf
composer require setasign/fpdi

ControllerでPDFを出力

use setasign\Fpdi\TcpdfFpdi;
use TCPDF_FONTS;

テキストの出力について

テキスト以外にも楕円や画像などを出力することもできます。

楕円

$pdf->Ellipse($x, $y, $rx, $ry);

パラメータ

$x ・・・中心点のX座標

$y ・・・中心点のY座標

$rx・・・水平方向の径

$ry・・・垂直方向の径(0とすると円になる)

画像

$pdf->Image($file, $x, $y, $w, $h);

パラメータ

$file・・・画像ファイル名

$x ・・・左上のX座標

$y ・・・左上のY座標

$w ・・・幅

$h ・・・高さ

保存先について

PDFをS3に保存したい場合はOutputの第2引数に「S」を指定します。

出力先は以下から選択できます。

I ・・・ブラウザに出力する。

D・・・ブラウザでダウンロードする。

F ・・・ローカルファイルとして保存する。

S ・・・文字列で出力する。

おわりに

今回はテンプレートを使ってPDF出力しましたが、HTMLをPDF出力することもできます。ただ、使用できるCSSが限定的なので使い勝手はあまり良くないようです。

LaravelでPDF出力するライブラリとしてはlaravel-dompdflaravel-snappyなども人気があります。

機会があればご紹介したいと思います。