一:dompdf/dompdf地址
github:https://github.com/dompdf/dompdf
packagist:http://packagist.p2hp.com/pac...
二:dompdf/dompdf安裝
composer require dompdf/dompdf
三:dompdf/dompdf簡單例項
$pdf = new \Dompdf\Dompdf();
$content = 'pdf內容';
$pdf->loadHtml($content);
//設定紙張大小和方向
$pdf->setPaper('A4', 'landscape');
$options = new Options();
//設定使用遠端圖片填充pdf內容
$options->setIsRemoteEnabled(true);
$pdf->setOptions($options);
//將html轉為PDF
$pdf->render();
//下載生成的pdf檔案
$pdf->stream('xxx.pdf');
//將生成的pdf儲存到伺服器
file_put_contents('xxx.pdf',$pdf->output());
//將生成的pdf檔案渲染到頁面
$pdf->stream('xxx.pdf', [
'compress' => 0,
'Attachment' => 0
]);
四:解決生成的pdf檔案中文亂碼
1:下載字型包安裝指令碼utils
https://github.com/dompdf/utils
2:字型包安裝指令碼處理
將下載下來的安裝指令碼中的load_font.php檔案複製到專案的vender平級目錄下,然後將需要的字型包檔案ttf也放到load_font.php同一級目錄下(例如simsun.ttf)
3:執行字型包安裝指令碼
php load_font.php simsun simsun.ttf
4:修改安裝字型包中的檔案路徑(注意:不操作此項再本機上是正常的,放到伺服器就會有問題了)
找到dompdf\dompdf\lib\fonts\installed-fonts.json檔案,這時候我們就可以看到我們剛剛安裝的字型包
這裡我們可以看到引入的字型包相關路徑都是本機路徑,我們可以看到 dompdf\dompdf\lib\fonts路徑下存在我們需要的檔案,修改引入路徑即可,如:
5:html使用字型包樣式即可
body {
font-family: simsun;
}
根據如上操作我們就可以解決中文亂碼問題