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

  • Pocket
  • このエントリーをはてなブックマークに追加
  • 170 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化とか結構楽じゃないかなと思います。

 

関連記事

converted.png

cakephpでコントローラー毎にBASIC認証をかけるの巻

まえかき まえがきとしてはタイトルどおりなのですが、 先日cakeph...

記事を読む

no image

PHPでrequireした結果を変数に格納する方法とちょっとした小技

まえがき PHPでrequireやincludeをそのまま単純に読み込...

記事を読む

Screeny Shot 2013-07-27 1.39.00.png

cakephpでTwitterAPI1.1を使ってTwitter検索をしてみる。

まえがき cakephpでTwitterAPIを使ってみましょう!!...

記事を読む

250px-Mammouth.png

PHPをcoffeescriptっぽく書ける「Mammouth」を試してみたのでメモ

まえがき PHPのコードをcoffeescriptライクにかけるnod...

記事を読む

Screeny Shot 2013-05-04 3.25.26.png

PHPとLinux(cron)でTwitterボットのひな形作り

まえがき Twitte API に関しては以前にrailsでソーシャ...

記事を読む

新着記事

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 ↑