簡單測試中文字形 pdf 方法(未測試)
這篇先留個誠實註記,當時我是在整理「要怎麼快速驗證 PDF 對中文是否友善」,不是完整實測報告,所以檔名才會寫未測試。不過如果之後又遇到 PDF 中文亂碼、字形缺字、列印字體跑掉,至少可以依照這篇的方向快速做第一輪驗證。
先釐清要測什麼
PDF 遇到中文問題,通常不是只有一種:
- 直接輸出變成方塊字。
- 顯示正常,但換台電腦列印就變形。
- 內容可以看,搜尋或複製文字卻是亂碼。
- 表格、粗體、換行在中文情境下跑版。
所以我覺得測試不能只看「能不能顯示中文」,至少要驗證下面幾項:
- 是否能正常嵌入字型。
- 常用中文字是否會缺字。
- 英文、數字、中文混排是否正常。
- 匯出後換一台電腦開啟是否仍正常。
我會準備的測試內容
如果只是快速驗證,建議先用一段固定文字:
|
|
如果這段都無法穩定顯示,通常就代表字型嵌入或字集支援還沒處理好。
jsPDF 方向
前端如果要直接在瀏覽器產 PDF,jsPDF 是很常見的選項,但中文往往不是開箱即用。核心觀念通常是先把字型轉成可載入格式,再註冊到 jsPDF 中使用。
我覺得 jsPDF 適合的情境:
- 前端報表量不大。
- PDF 版面比較單純。
- 希望完全在瀏覽器端產生。
要注意的是,如果只是套預設字型,通常很容易在中文這關出問題。
參考:
JSPDF支持中文(思源黑体)采坑之旅,JSPDF中文字体乱码解决方案 - 有蚊子 - 博客园
解决jspdf中文乱码、表格中文乱码!–终极版!!_huanhuan03的博客-CSDN博客_jspdf中文乱码
Go 方向
如果 PDF 是在後端批次產生,Go 的函式庫也值得考慮。像 gofpdf 這種做法,比較適合:
- 後端集中產生報表。
- 想要把 PDF 產出放在 API 或排程服務。
- 不希望前端負責字型與版面細節。
但 Go 這條路一樣要先確認字型處理方式,不是語言換了就自動沒問題。
參考:
jung-kurt/gofpdf: A PDF document generator with high level support for text, drawing and images
PowerShell 方向
如果需求偏管理工具、內部文件自動化,PowerShell 也有可用套件。這種方案比較偏 Windows 管理流程,不一定適合高流量網站,但臨時要做報表、批次匯出、合併 PDF 時反而很省事。
參考:
我自己的選型想法
如果是 Web 頁面臨時匯出 PDF,我會先看 jsPDF。
如果是正式報表服務,我會偏向後端集中產生。
如果只是內部工具自動化,PowerShell 反而可能最省時間。
這篇先當成方向整理。之後如果真的做完整實測,我會至少補上同一份中文字串、同一個字型、同一份版面去比較哪一套最穩。