TCPDFを使ってCakePHPでPDFを作成
開発環境:CakePHP2.5.1
CakePHPでPDFを作成するには幾つかの方法がありますが、今回はTCPDFを使った方法を紹介します。
TCPDFの準備
まずは、下記よりファイルをダウンロードします。
http://sourceforge.net/projects/tcpdf/files/
(バージョン:6.0.090)
ダウンロードしたファイルを解凍して、app/Vendor/ 以下に配置します。
コントローラーの準備
続いてコントローラー側の設定です。
RequestHandlerのrespondAsメソッドを使って、Content-Typeを指定します。
<?php class PdfController extends AppController { public $components = array('RequestHandler'); public function index() { $this->layout = ''; $this->RequestHandler->respondAs('application/pdf'); } }
ビューでHTMLを作ってPDF化
最後にビュー側の設定です。
ここでPDFの様々な設定とPDFに表示する情報をHTMLタグで生成します。
<?php App::import('Vendor','tcpdf/tcpdf'); // 各種設定は app/Vendor/tcpdf/config/tcpdf_config.php で定義 $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8'); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); // 日本語表示のために「小塚ゴシックPro M」を指定 $pdf->SetFont('kozgopromedium'); // ページを追加 $pdf->AddPage(); $html = <<< EOF <style> .contents { text-align: center; font-size: 20px; } </style> <div class="contents">PDFテスト</div> EOF; $pdf->writeHTML($html, false, false, false, false, 'L'); // ダウンロード $pdf->Output('sample.pdf', 'D');
これでindexアクションを呼び出すとPDFをダウンロードするかのダイアログが表示されます。