Linux下導出Word、Pdf時中文亂碼問題

問題背景

項目需要導出Word文檔、Pdf文檔。Word文檔是使用easypoi根據導出模板生成的,其中的圖表使用JFreeChart繪製。Pdf文檔是使用aspose-words將Word文件流轉換成Pdf文件流。

問題描述

1. 導出Word文檔時,JFreeChart圖表上的中文亂碼,Windows系統下沒問題。

2. 導出Pdf文檔時,正文的中文和JFreeChart圖表的中文亂碼,Windows系統下沒問題。

系統環境

CentOS 6

問題解決

1. JFreeChart圖表中文亂碼

在生成JFreeChart圖表的時候,我指定了圖表的標題使用宋體。而JVM的字體庫中,並沒有該字體,這就需要將該字體添加到JVM的字體庫中

# Windows操作系統中,在C:\Windows\Fonts目錄下,找到simsun.ttc宋體字體文件

# Linux系統中,在%JAVA_HOME%/jre/lib/fonts目錄下,新建目錄fallback

# 將simsun.ttc字體文件複製到fallback目錄下,重啓tomcat即可

2. Pdf正文中文亂碼

這個問題是由於Linux中沒有對應的字體供使用,那就需要把Windows下常用的中文字體安裝到Linux操作系統。

# Windows操作系統中,在C:\Windows\Fonts目錄下,找到所有的中文字體文件,放到臨時的新建文件夾下

# Linux操作系統中,在/usr/share/fonts目錄下,新建目錄windows

# 將中文字體文件複製到新建的windows目錄中

# 改變字體文件的權限,執行命令chmod -R 755 /usr/share/fonts/windows/

# 進入字體庫文件夾,執行命令cd /usr/share/fonts/windows

# 根據當前目錄下的字體建立scale文件,執行命令mkfontscale

# 建立dir文件,執行命令mkfontdir

# 執行命令fc-cache,重啓tomcat即可

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章