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をダウンロードするかのダイアログが表示されます。
