はじめに
帳票の印刷など、プログラムでPDFを出力する機会は比較的多くあります。LaravelでPDFを簡単に出力できるので、その方法をご紹介します。
TCPDFとFPDIをインストール
composerでインストールします。
composer require tecnickcom/tcpdf
composer require setasign/fpdiControllerで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-dompdfやlaravel-snappyなども人気があります。
機会があればご紹介したいと思います。