codeigniter3 - 輸出PDF / dompdf 中文
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