以前、「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とどっちがいいんだろうか。