|
|
CakePHPでPDFを出力してみる keison
自己紹介 名前:福井謙一(Keison) プログラマー(PHP)暦:4年 CakePHP暦:1年半
PDFの必要性 業務で画面の内容(帳票や見積り等)を印刷したいという要望がお客さんから良く出ます そこで印刷する方法を模索します
PDFの必要性 HTMLをブラウザの印刷機能で印刷する方法 PDFに変換して印刷する方法
PDFの必要性 ブラウザ印刷の不便な点 使っているブラウザによって見え方がばらばら ブラウザが同じでも個々のパソコンの設定やバージョンで出方が変わってしまう 見た目の細かい制御が難しい 改ページの制御が出来ない フォントがブラウザに依存
PDFの必要性 PDFに変換する利点 PDFにしてしまえばAdobe Readerが入っていれば環境に依存されず印刷できる セキュリティの設定も可能 改ページの制御もバッチリ フォントも場所によって切り替えられる
PDFのライブラリ PDFlib 商用だと有料。ライセンスを購入しないとロゴが表示される FPDF UTF-8で使うには設定が面倒 TCPDF FPDFの進化系、UTF-8にも対応している FPDI 既存のPDFを読み込める。FPDFやTCPDFと組み合わせて使う 他のライブラリ HTML2FPDF、Apache FOP、Zend_Pdf等がある
PDFのライブラリの選択 今回はTCPDF+FPDIの組み合わせで使ってみました TCPDFは http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf からダウンロード FPDIは http://www.setasign.de/products/pdf-php-solutions/fpdi/ からダウンロード
PDFをCakePHPで使ってみる ダウンロードしたライブラリをvendorsの中に配置します
PDFをCakePHPで使ってみる TCPDFとFPDIの二つのライブラリを呼ぶファイルを作成します
PDFをCakePHPで使ってみる コントローラーを記述します
PDFをCakePHPで使ってみる モデルを記述します
PDFの座標あわせ PDFは作れるようになった 座標をチマチマと合わせるのが非常にめんどうくさい そこで自社で作った座標合わせライブラリでPDFの位置合わせをしました
PDFの座標あわせ モデルを記述します
まとめ PDFで出力できたらすごく便利 PDFを出力する方法も紹介サイトが多数あるので、そんなに詰まらず出来ました CakePHPで使う場合はPDFライブラリをvendorsに配置して、後はパスの合わせかたを注意するだけですぐに使えました
参考資料 SE奮闘期 http://se-suganuma.blogspot.com/ GASOLINE STAND http://hrgs.xrea.jp/ TCPDFに関するリファレンス・ドキュメント http://www.monzen.org/Refdoc/tcpdf/
終わり ご清聴ありがとうございました
No comments posted yet
Comments