當使用java在生成pdf或者圖片時,如生成的文檔包含有中文在inux上運行,會出現未安裝字體的錯誤活字體亂碼,此時需要我們在服務器上安裝中文字體:
1、首先先看是否安裝中文字體:
fc-list :lang=zh
-bash: list-fc: command not found
如出現上邊提示,還未安裝相關字體的軟件包
請按如下安裝對應軟件包
yum -y install fontconfig #安裝字體庫
yum -y install ttmkfdir mkfontscale #安裝字體索引信息
安裝完後再次運行fc-list :lang=zh, 如果沒顯示任何信息,則表示沒安裝任何中文字體
3、上傳中文字體
在服務器的 /usr/share/fonts 下創建zh目錄, 創建命令如下
cd /usr/share/fonts
mkdir zh
在windows系統下進入C:\Windows\Fonts, 選擇想安裝的字體上傳至服務器,一般情況下是安裝微軟雅黑和宋體
我選擇 msyhbd.ttf 、msyh.ttf、simsun.ttc,一般安裝這三個字體足夠了,將這三個字體上傳至 zh目錄
4、生成字庫索引信息
上傳完字體後,進入zh目錄
執行如下:
cd zh
mkfontscale
mkfontdir
該命令在當前zh目錄下生成 fonts.dir fonts.scale 兩個文件
5. 更新字體緩存
執行 fc-cache
6.再次上看是否安裝了中文字體 fc-list :lang=zh
會出現 以下類似信息
fc-list :lang=zh
/usr/share/fonts/zh/msyhbd.ttf: Microsoft YaHei:style=Bold,Félkövér
/usr/share/fonts/zh/simsun.ttc: NSimSun:style=Regular
/usr/share/fonts/zh/simsun.ttc: SimSun:style=Regular
/usr/share/fonts/zh/msyh.ttf: Microsoft YaHei:style=Regular,Normal
表示安裝成功過
7、重啓應用,切記要重啓對應的應用,我的是web應用,重啓tomcat,生成pdf成功