本文分享在Linux系統下,通過Java 程序代碼將Word轉為PDF文檔時,結果文檔內容出現亂碼該如何解決。具體可參考如下內容:
1.問題出現的背景
在Windows系統中,使用Spire.Doc for Java將Word文檔轉換為PDF格式時(如下代碼),結果文檔內容正常;但是在Linux系統中,轉出來PDF文檔出現亂碼或方框。
import com.spire.doc.*; public class WordtoPDF { public static void main(String[] args) { Document document = new Document(); document.loadFromFile("Sample.docx"); document.saveToFile("out/toPDF.pdf", FileFormat.PDF); } }
2. 問題出現的原因
這個問題是由於Linux服務器缺少字體所導致。通過Spire.Doc for Java轉換Word到PDF時,需要從系統中查找對應的字體繪制字形,如果系統中沒有安裝文檔使用的字體,那么會先從系統安裝了的字體匹配出能支持這個字形的字體,如果無法匹配出相應的字體,那么就會出現亂碼或方框。若遇到這類問題,建議先確認Word文檔中使用了哪些字體,將這些字體安裝到Linux系統。
3. 問題解決辦法
關於如何查看和安裝字體的詳細指令:
步驟1:開啟root權限:
輸入指令: su root ;不行時,需要先輸入指令: sudo passwd root, 根據步驟輸入密碼,然后再重新輸入指令: su root 。
步驟2:將字體文件先放到某一個文件夾下,然后進入文件夾:
輸入指令: cp simsun.ttc /usr/share/fonts/
然后依次輸入下面的指令:
mkfontscale //字體擴展
mkfontdir //新增字體目錄
fc-cache-fv //刷新緩存
步驟3:查看安裝的字體文件:
查看系統中的字體
指令:fc-list
查看系統中的中文字體:
指令:fc-list:lang=zh
以上是本次關於“在Linux系統下,通過Java程序將Word轉為PDF后,出現內容亂碼的解決辦法”的全部內容。如果問題未解決,可留言或添加 QQ:2790765778 。