JFreeChart 在 Linux 下中文亂碼的問題

使用 Jakarta JMeter 來自動量測網銀效能已經一段時間了,直到今年五月前都是請工讀生將量測的數據用 Excel 整理成報表。不過由於工讀生人力縮減,這項整理報表工作勢必得想辦法變成自動化,於是我便找時間將報表分析作業用 Struts / Spring,弄了一個小網站方便查詢整理分析的效能數據。

其中有項報表是以曲線圖表顯示每項量測個案歷史區間的效能起伏變化,原本 Excel 拿來作圖表非常簡單,但是換成用程式自動產生圖表就有點麻煩了。後來找到一個 OpenSource 繪製圖表的 Library – JFreeChart,這個函式庫支援非常多的圖表,舉凡柱狀圖、圓餅圖、曲線圖、DashBoard…,實在是不勝枚舉。研究了一下,加上股溝上面找來的 sample code,七拼八湊終於也完成了這個圖表。

不過等到部署到 Broso Fedora 上面後,才發現怎麼原本在 Windows Desktop 上顯示正常的中文字體,在 Linux 執行後全部變成了小方塊。

 

查了一下才知道,原來必須將中文字體加入 JRE Library 的 font path 中。稍微記錄一下。

  1. 察看 /usr/share/fonts/zh_TW/TrueType,下面有沒有中文字型檔,如果沒有,將 Windows 下的細明體檔案複製到此。
  2. 察看 $JAVA_HOME/jre/lib 下面有沒有 fontconfig.RedHat.properties 這個檔案。如果沒有,複製 fontconfig.RedHat.properties.src 成為 fontconfig.RedHat.properties。
  3. 修改 fontconfig.RedHat.properties ,新增一組設定。filename.-misc-zysong18030-medium-r-normal–*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_TW/TrueType/bsmi00lp.ttf。
  4. 重新啟動 Application Server,搞定。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料