あべてっく

役に立ったり立たなかったりする内容を備忘録的にちょこちょこと。
 

Yii Framework: PDFを出力してみる

投稿日 2012年4月9日  カテゴリ : PHP  タグ :

今日も今日とてYii Frameworkです。
今日はPDFを出力させてみます。

PDF出力は、tcpdfというPHPの拡張ライブラリと、

ETcPdfという、上記tcpdfをYiiで使う為のラッパーを設置することできるようです。

  1. まずはプロジェクトhogeのprotected/extensions/ 内にtcpdfというフォルダを作ります。
  2. 上記サイトからETcPdfのPHPファイルETcpdf.phpをダウンロードして、作成したtcpdfフォルダ内に置きます。
  3. さらに、拡張ライブラリtcpdfをこのETcpdf.phpの横にダウンロード・展開します。なおこのダウンロードしたtcpdfもtcpdfというフォルダに入ってます。ややこしいw このフォルダ名を変更する場合ETcpdf.php内で設定されてるパスも変更する必要があります。
  4. ETcpdf.phpに若干バグ?があるようなので修正します。

85行目:
define (“K_PATH_CACHE”, Yii::app()->getRuntimePath());

if (!defined(“K_PATH_CACHE”)){
define (“K_PATH_CACHE”, Yii::app()->getRuntimePath());
}

に変更。

これで準備完了ですw はやw

では書き出しテストを。
使用してるコントローラーMogeにテスト用コードを埋めます。
コードはプラグインサイトのをほぼマルコピです。

class MogeController extends Controller {
public function actionPublishPdf() {
$pdf = Yii::createComponent(‘application.extensions.tcpdf.ETcPdf’, ‘P’, ‘cm’, ‘A4’, true, ‘UTF-8′);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(“Nicola Asuni”);
$pdf->SetTitle(“TCPDF Example 002”);
$pdf->SetSubject(“TCPDF Tutorial”);
$pdf->SetKeywords(“TCPDF, PDF, example, test, guide”);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont(“times”, “BI”, 20);
$pdf->Cell(0,10,”Example 002″,1,1,’C’);
$pdf->Output(“example_002.pdf”, “I”);
}

これでhttp://hoge.com/hoge/moge/publishpdf/にアクセスしてPDFが画面に表示されればおkです。
(ニコ動の某ボブ絵画教室風に)ね、簡単でしょうw
なお、上のテスト用パラメータの書き方は、Yii用に特別とかはなくtcpdfの一般的な書き方と同じみたいです。
tcpdfでぐぐるといろいろ出てくるので詳細はそちらをご参照くださいw
 
 


 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です