1. 利用composer安裝

composer require dompdf/dompdf

        *此範例預設已經開啟 “composer_autoload = [/your/path/autoload.php']” 

2. 建立Codeigniter library

在library中建立檔案:Pdfgenerator.php

defined('BASEPATH') OR exit('No direct script access allowed');

use Dompdf\Dompdf;

class Pdfgenerator {
    public function generate($html, $filename='', $stream=TRUE, $paper = 'A4', $orientation = "portrait")
    {
        $dompdf = new DOMPDF();
        $dompdf->loadHtml($html);
        $dompdf->setPaper($paper, $orientation);
        $dompdf->render();
        if ($stream) {
            $dompdf->stream($filename.".pdf", array("Attachment" => 0)); }
        else {
            return $dompdf->output();
        }
    }
}

3. 在Controller中即可引入library並且產出PDF

$this->load->library('pdfgenerator')
$html = "<div>Hello~~</div>";
// $html = $this->twig->render(template_path , $data); // 使用ci3-twig的讀取
$this->pdfgenerator->generate(html);



**** 若需要輸出中文文字,需另外安裝中文字體 **** 

1. 下載load_font.php,可安裝字體

     將 https://github.com/dompdf/utils 下 load_font.php 下載放置到專案根目錄中

2. 自行下載中文字體 : Droid Sans Fallback,以下範例命名為:DroidSansFallback,進行dompdf字體安裝

php load_font.php 'DroidSansFallback' your/path/DroidSansFallback.ttf

3. 最後在 html中的css引入字型即可使用

<html>
<head>
    <style>.zh-tw{ font-family: "DroidSansFallback" }
</head>
<body>
<h1 class="zh-tw">中文字顯示測試....</h1>
</body>
</html>

 

ref: https://github.com/dompdf/dompdf/wiki/Using-Dompdf-in-CodeIgniter-3.x
ref: https://blog.51cto.com/lampzxr/1916038