以前、「CodeIgniter 2.0.3 で TCPDF」を書いているので、
現在のCodeIgniter3.0でもTCPDFを使ってみました。
TCPDFのバージョンは、「6.2.9」
TCPDFをComposerに追加
TCPDFもpackagistにあるのでこれを使います。
https://packagist.org/packages/tecnick.com/tcpdf
composer.json に tcpdf を追加します。
{
"require": {
"codeigniter/framework": "3.0.*",
"tecnick.com/tcpdf": "6.2.*"
}
}
これで、composer update を実行すると、vendor以下に「tecnick.com」が追加され、その中に「tcpdf」が入っています。
Libraryを作成
CodeIgniter 2.0.3の時と同じようにLibraryを作成を作成します。
composerでインストールしているのでautoloadされるため、「require_once」で読み込む必要はありませんでした。
defined('BASEPATH') OR exit('No direct script access allowed');
class Pdf extends TCPDF {
public function __construct()
{
$orientation = 'P';
$unit = 'mm';
$format = 'A4';
$unicode = true;
$encoding = 'UTF-8';
$diskcache = false;
if (isset($params['orientation'])) {
$orientation = $params['orientation'];
}
if (isset($params['unit'])) {
$unit = $params['unit'];
}
if (isset($params['format'])) {
$format = $params['format'];
}
if (isset($params['encoding'])) {
$encoding = $params['encoding'];
}
if (isset($params['diskcache'])) {
$diskcache = $params['diskcache'];
}
# initialize TCPDF
parent::__construct($orientation, $unit, $format, $unicode, $encoding, $diskcache);
}
}
Controllerを作成
以前の同じようにControllerを作成
TCPDFのバージョンは上がっていますけど、基本的なパラメータは変わってはないですね。
class Sample02 extends CI_Controller{
public function index()
{
$this->print_pdf();
}
private function print_pdf()
{
// PDFライブラリ呼出
$this->load->library('pdf');
// ページ向き(横)
$page_orientation = 'L';
// ページフォーマット
$page_format = 'A4';
$pdf = new TCPDF($page_orientation, 'pt', $page_format, true, 'UTF-8', false);
// フォント
$font = 'kozgopromedium';
// ページの追加
$pdf->AddPage();
// フォント指定 フォントサイズ:9
$pdf->SetFont($font, '', 9);
$pdf->Cell(0,12,"Hello World!",1,1,'C');
// フォント指定 フォントサイズ:20
$pdf->SetFont($font, '', 20);
$pdf->Cell(0,12,"日本",1,1,'C');
$pdf->Close();
$pdf->Output('sample.pdf','I');
exit;
}
}
フォントは標準で組み込まれている「kozgopromedium」を使って日本語を出力しています。
フォントファイルは、tcpdfの中にfontsフォルダがあり、そこにいくつか日本語対応フォントが入っています。
以前に、納品書をTCPDFで作ったけど、結局「MultiCell」は使ってないんだよねぇ。
「MultiCell」を使う可能性があるということでTCPDFを選択したんだけど、
ZendPDFとどっちがいいんだろうか。