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