Pages - Menu

2013年7月16日火曜日

YiiFrameworkでPDFを作成

ほぼ公式サイトと同じ内容だけど、日本語化に対応させる必要があります。

公式サイトからyii-pdf-0.3.2.zipをダウンロードし、/protected/extensionsにyii-pdfとし配置。
また、今回はmPDFを使用するので、公式サイトからmPDF version5.7をダウンロード。
/protected 配下にvendorsディレクトリを作成し、ダウンロードしたファイルをmpdfとリネームして配置した。

/protected/vendors/mpdf

/protected/config/main.php に以下の内容を追加。

'ePdf' => array(
    'class'         => 'ext.yii-pdf.EYiiPdf',
    'params'        => array(
    'mpdf'     => array(
        'librarySourcePath' => 'application.vendors.mpdf.*',
        'constants'         => array(
            '_MPDF_TEMP_PATH' => Yii::getPathOfAlias('application.runtime'),
        ),
        'class'=>'mpdf', // the literal class filename to be loaded from the vendors folder
        )
    ),
),

日本語に対応させるために、mpdf.phpを編集。
1146行目の以下の内容をコメントアウト。

/* if (preg_match('/([\-+])aCJK/i',$mode, $m)) {
preg_replace('/([\-+])aCJK/i','',$mode);
if ($m[1]=='+') { $this->useAdobeCJK = true; }
else { $this->useAdobeCJK = false; }
}*/

また、以下の1行を追加。

$this->useAdobeCJK = true;

これでOK。

Controller側

$model = $this->loadModel();
$mPDF1 = Yii::app()->ePdf->mpdf();
$mPDF1 = Yii::app()->ePdf->mpdf('ja', 'A4');
$mPDF1->WriteHTML($this->renderPartial('index', array('model'=>$model), true));
$mPDF1->Output();

これでPDFが作成される。



0 件のコメント:

コメントを投稿