在linux字型下的顯示問題及幾種解決辦法

飄然輕落發表於2016-11-29

將潤乾報表部署到linux系統上時,往往在報表展現時會出現一些顯示問題,例如:報表沒有自動換行、統計圖或表頭斜線上的中文變成小方框、報表匯出pdf後中文出問題等。

 

出現此類問題主要為作業系統中缺少中文字型所致,由於linux系統上沒有對應的中文字型,將會導致匯出pdf或參與圖形計算時中文亂碼。解決辦法主要為系統增加相應的字型。增加字型有多種方式,下面以宋體為例介紹幾種比較常見的操作:

 

一、將windows系統下的字型拷貝到linux下

        將WINDOWS下的C:WINDOWSFonts下的SIMSUN.TTC拷貝到linux下的/usr/share/fonts/TrueType/路徑下,重啟linux,讓系統載入該字型即可,這樣就能解決絕大多數字體問題。

注意:這裡放置完字型後要重啟系統,讓系統載入字型,否則設定無效。也可以不重啟系統,通過命令強制載入字型。在終端執行命令:

 

sudomkfontscale

sudomkfontdir

sudo fc-cache –fv

 

強制更新字型快取,這樣也能夠是新加入的字型生效。

 

 

二、更改jre中字型

        上述方法為解決作業系統字型,由於報表是通過java計算,所以也可以更改jre中的字型,從而也能解決該問題。

         找到java安裝目錄下的/jre/lib/fonts目錄,在下新建fallback資料夾,注意此處的目錄一定要為當前web伺服器使用的jdk目錄,將windows下的字型檔案拷貝到fallback資料夾下,重啟web伺服器即可解決該問題。

注意:如果系統中只需要宋體,則只將宋體拷貝到該目錄下,否則有可能會造成報表展現時中文不亂碼,但是字型也並不是想要的宋體。

 

        如果系統中需要多種字型,則還需要更改jre的字型配置檔案,該檔案位於jdk安裝目錄java_home/jre/lib目錄下,名稱為font.properties.zh_CN.Redhat(不同作業系統該配置檔名稱可能不同),在font.properties.zh_CN.Redhat中找到

dialog.1=-misc-zysong18030-medium-r-normal *-%d-*-*-c-*-iso10646-1

把zysong18030改成我們想要的宋體simsun

 filename.-misc-zysong18030-medium-r-normal *-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf

把zysong18030改為simsun;zysong.ttf改為simsun.ttc

 

然後重啟web伺服器,字型能正常展示。


相關文章