在 Laravel 使用 barryvdh/laravel-dompdf package 產生 PDF 時, 會有中文顯示的問題
之前花了不少時間, 總算是有一個比較好的解決方式! 
不過中文的問題解決了!還有因為轉出內容過大導致記憶體不足的問題, 而產生 crash 導致無法產出PDF檔案的問題, 則是另一個需要解決的難題了!
願善心人士可以分享解決方式, 謝謝! 

以下整理 barryvdh/laravel-dompdf package 之 PDF 中文的問題

1. 首先參考在你的 laravel proejct 安裝 laravel-dompdf package

2. 安裝之後, 進入 /vendor/barryvdh/laravel-dompdf/config 

dompdf_001.jpg

修改 dompdf.php 檔案內容

將 "DOMPDF_DEFAULT_FONT" => "serif",

改成 "DOMPDF_DEFAULT_FONT" => "msyh",

dompdf_005.jpg

修改完成後請存檔!

從 链接: https://pan.baidu.com/s/1jIKD4Ia 密码: 8nyq 下載字型檔案, 並且, 將整個 fonts 資料夾的檔案複製到專案目錄下的 /storage/fonts 資料夾裡.

以上就完成了!

可以試著產生帶有中文字的 PDF 檔案!

需注意的是:直接修改 /vendor/barryvdh/laravel-dompdf/config 的 dompdf.php 組態檔案 在預設的情況 並不會被保存

所以當網站搬家時, 該 vendor 目錄是會經由 composer update 指定重新下載的 (預設這個目錄會被 git 排除)

因此, 如果要避免網站搬家時, 忘記備份到 修改的設定檔案內容, 則可以使用指令

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"

dompdf_004.jpg

將 config copy 到 專案的 config 目錄下, 這樣就可以保留所修改的設定, 也比較不容易忽略!

以上為心得筆記, 供參考, 還請前輩不吝指教,謝謝大家!!

 

 


arrow
arrow
    創作者介紹
    創作者 Frank 的頭像
    Frank

    經驗交流分享與備忘

    Frank 發表在 痞客邦 留言(0) 人氣()