cakephpで簡単pdfファイル出力ができてびっくりしたのでメモ

  • Pocket
  • このエントリーをはてなブックマークに追加
  • 173 follow us in feedly

まえがき

すこしヤボ用でcakephpでpdfファイルを出力しないといけないタスクがあったのでぐぐってみると

一瞬でできました!!

今後もお世話になりそうなのでメモです。

今回使うライブラリは「tcpdf

ダウンロードはこちら↓

http://sourceforge.net/projects/tcpdf/files/

くわしい使い方が乗ってるサイト様↓

http://www.t-net.ne.jp/~cyfis/tcpdf/tcpdf/constructor.html

 

開発環境

・OS: CentOS 6.4

・PHP :5.3

 ・cakephp:1.3

・tcpdf:6.0.020

 

ダウンロード

 上記URLから

tcpdfをダウンロード

 

ライブラリの設置

cakephpのプロジェクトの

/app/vendors/tcpdf

となるようにダウンロードしたZipを解答してそのままぽい!

 

コントローラー

・コンポーネントの追加をする。

public $components = array('RequestHandler');

 

・pdf出力のアクションをつくる

// 必要なのは1行だけ。オートレイアウト切っとくほうがいいかも
public function showpdf(){
	$this->autoLayout = false;
	$this->RequestHandler->respondAs('application/pdf');
}

 

ビュー

いつもどうりに ~.ctpの形でファイルを作る

で、こんな感じで

<?php
// おまじない
App::import('Vendor', 'tcpdf/tcpdf');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// 他にもフォントたくさん!!日本語対応フォントも色々ありました!
$pdf->SetFont('kozgopromedium');
$pdf->AddPage();

// pdfのファイル名
$filename = "hello.pdf"

$html = "
だらだらーっとHTMLを書いていく。
";

// このへんも調べれてないのでおまじないとゆうことで...
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output($filename, 'I');

 

実行してみる

URLも普通にコントローラー/アクションで大丈夫。

後ろを.pdfにする必要とかもないです。

 

あとがき

PDFめんどくさそう〜っておもっていたけど思うようにできすぎてびっくりでした。

ビュー内でHTMLやPHPを書きにくくなるので

わざと2つアクションを作って

file_get_contents()の結果をPDF化とか結構楽じゃないかなと思います。

 

関連記事

Screeny Shot 2013-07-02 2.42.14.png

今更、Google URL短縮APIを試してみた。for PHP

まえがき いまさらですがGoogleURL短縮APIを試してみたのでメ...

記事を読む

MacにPHP5.5をインストールする

まえがき Macには標準でPHP5.3かなんかがインストールされている...

記事を読む

heroku-pukiwiki-1heroku-pukiwiki-1.png

HerokuでWikiページ(PukiWiki)をあっさり作っちゃうの巻

まえがき 今回はHerokuを使ってWikiページを簡単に作っちゃおう...

記事を読む

no image

Cakephpでよく忘れるコントローラーの設定

まえがき 最近久しぶりにCakephpを触りました、新しいプロジェクト...

記事を読む

no image

CentOSにPHP5.5をインストールするメモ

まえがき 表題どおり、何かと最近Linux環境にPHP5.5をこしらえ...

記事を読む

新着記事

no image

PHPでRubyのirbっぽいインタラクティブなスクリプトが実行できる「boris」

まえがき PHPでもRubyのirbみたいなことがしたくて探してみたと...

記事を読む

2015年の抱負と去年の振り返り〜よちよちWEB業界1年経験して〜

まえがき あけましておめでとうございます。今年もどうぞよろしくお願いし...

記事を読む

Java SE 7 Bronze試験(1Z0-802)を受けてきました

まえがき 以前から少し受けてみたかった試験『Java SE 7 Bro...

記事を読む

HubotでJenkinsのジョブを実行する

まえがき HubotをつかってJenkinsのジョブをじっこうしてみた...

記事を読む

no image

Hubotをforeverでデーモン化する

まえがき 今回はHubotをforeverを使ってデーモン化してみた時...

記事を読む

スポンサーリンク

PAGE TOP ↑