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を指定します。
1 2 3 4 5 6 7 8 9 10 |
<?php class PdfController extends AppController { public $components = array('RequestHandler'); public function index() { $this->layout = ''; $this->RequestHandler->respondAs('application/pdf'); } } |
ビューでHTMLを作ってPDF化
最後にビュー側の設定です。
ここでPDFの様々な設定とPDFに表示する情報をHTMLタグで生成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?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をダウンロードするかのダイアログが表示されます。
柴田 篤志
最新記事 by 柴田 篤志 (全て見る)
- WordPressとCakePHPの共存 - 2014年10月22日
- サイトマップの作成方法 - 2014年10月12日
- INSERTしたIDを取得する - 2014年10月4日