PDFライブラリ
CakePHPでPDFを出力する方法を試してみた。
まず、PDFライブラリですが、調べたところイロイロあり迷ったのですが、TCPDFを使用することにしました。
決め手は、
- 後発
- UTF-8 対応
TCPDFサイトにはexamplesが大量にあったのでそれを参考にすればよさそう。
CakePHPでの使用
まずは、TCPDFをダウンロード&展開し、
- トップ/app/Vendor/tcpdf
次に、コントローラ作成
- トップ/app/Controller/PdfsController.php
<?php class PdfsController extends AppController { public $components = array('RequestHandler'); public function pdfTest() { // Content-Type $this->RequestHandler->respondAs('application/pdf'); // レイアウトを使用しない $this->layout = ''; } }
最後に、ビュー作成
- トップ/app/View/Pdfs/pdf_test.ctp
<?php App::import('Vendor', 'tcpdf/tcpdf'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->AddPage(); $pdf->Cell(0, 0, 'Hello World'); $pdf->Output('HelloWorld.pdf', 'I');
Content-Typeがうまく設定できなくてはまりました。RequestHandlerが必要なんだって。