在使用 Python 操作 PDF 文件時,尤其是在處理中文、日語等非拉丁字符語言時,常常會遇到一個令人頭疼的問題——文字變成“黑框”或“方塊”,這通常是由于缺少合適的字體支持所致。本文將介紹一種自動選擇系統字體的方式,結合 PyPDF2 模塊解決此類問題。
一、問題背景:黑框問題的本質原因
PyPDF2 是一個廣泛使用的 PDF 操作庫,支持讀取、拆分、合并 PDF 文件等。然而,它本身并不直接支持寫入帶字體的內容,而是通常需要借助 reportlab
等庫生成文字內容,再通過 PyPDF2 合并或插入。
當我們嘗試寫入中文、日文等文字時,若所選字體不支持該語言字符集,就會出現以下現象:
-
顯示為黑框、方塊或亂碼
-
打開 PDF 時出現字體替代提示
-
打印時無法輸出正確內容
二、解決思路:基于語言自動選擇合適字體
為了解決該問題,我們可以:
-
查詢操作系統中已安裝的字體
-
為不同語言預設