www.flickr.com

3/13/2011

「教學」Gantt Project 免費跨平台的甘特圖軟體中文 PDF 相容性解決方法

小梅子非常喜歡使用 Gantt Project 這個免費的跨平台甘特圖軟體,它可以很方便的製作包括有資源和人力分配表的工作甘特圖,並且因為是 Java 核心,所以同時提供 Mac OSX , Win 和 Linux 等版本,另外雖然它沒有 iPhone / iPad 的版本,不過透過 project planner 這個付費小工具,就可以在 iPhone / iPad 上直接輸入和輸出 Gantt Project 的檔案,且支援中文。

另外 Gantt Project 也有限度的支援 Microsoft Project 和 CSV 的輸出格式,也可以輸出成 HTML 模式,以一個免費的軟體而言,簡直是強大又好用啊。

不過它對於中文的輸入支援雖然不錯,在輸入和格式轉換上也都非常稱職,但,它對於 PDF 輸出的亞洲語系支援度很不好,直接透過定內 PDF 輸出的檔案,亞洲語文都是亂格子之類的。

這個問題在 Gantt Project 改版多次以後,一直沒有被解決,原作者在論壇上看起來是知道了這個問題,但也並沒有很好的官方解決方法,不過,論壇中倒是有一個 2005年由 RyuheiTerada 提出的「自己動手修改」亞洲語系(CJK , 好久沒有看到這個詞了)解決方式,小梅子花了點時間測試,發覺真的有用,不過因為原文已經經過多年,所以我重新寫了一下修改的方法,希望可以幫助其他同樣使用 Gantt Project 的網友。

這個方法是由 RyuheiTerada 在論壇上提出的 fop-font-metrics.jar to export PDF with CJK,假如有高手可以自己編譯,應該可以用更美觀的字體來顯示,不過我們這裡還是先以標準解法來說明。

由於小梅子慣用的是 Mac 平台,所以我下面的用語和路徑都會以 Mac OSX 為主,其他平台的朋友請參考原作,下載合適的檔案修改應該也可以。

這是 Gantt Project 輸出 PDF 的樣式,中文終於可以用了,嗚嗚嗚嗚~

修改的方式如下:

1. 首先請先預備好一組可以支援 CJK 字體的字型檔,我們這裡用的是 Bitstream Cyberbit 的 Unicode 字體,可以在剛剛下載的連結中找到 Cyberbit.ZIP 這一組,解壓縮後可以看到約 13.4MB 的 Cyberbit.ttf 中文字體。

2. 請將這個字體置入系統的 Java 字體目錄下,在 Mac OSX 下面,位置在 System/Library/Frameworks/JavaVM.framework/Home/lib/fonts/
這個動作可能需要你輸入系統密碼,才能讓你將字體拷貝移動進去。

3. 下載 RyuheiTerada 預先編譯好,為了 GanttProject 專用的fop-font-metrics.jar 相關套件
http://tera-com.fromc.jp/blog/tera-com/temp/org.ganttproject.impex.htmlpdf_2.0.zip

4. 解壓縮後,會看到 org.ganttproject.impex.htmlpdf_2.0.0 這個檔案夾,裡面又分別有 lib 和 resource 兩個檔案夾,這裡千萬要小心,因為不是所有的檔案都會用到。

5. 請在找到 GanttProject 這個軟體後,先不要執行它,按下滑鼠右鍵,就會看到「顯示套件內容」這個選項,選定它。

6. 然後請找尋「Contents -> Resources -> ganttproject -> plugins」,一層層下去,你就會看到 org.ganttproject.impex.htmlpdf_2.0.0 檔案夾,我知道這有點麻煩,請細心找一下囉。

7. 然後將你剛剛先前下載過的 org.ganttproject.impex.htmlpdf_2.0.0 裡面 lib 中的 fop-font-metrics.jar 換掉原本 ganttproject 的,對,這個是比較舊的版本沒錯,但因為它裡面已經幫你打包好了 Cyberbit.ttf.xml , Cybercjk.ttf.xml , sazanami-gothic.ttf.xml 等,所以假如你沒有能力自己搞定這些,就直接拿別人改好的 fop-font-metrics.jar 來取代吧。

這裡千萬要注意,fop.jar 這個檔案在這個階段不需要替換,否則反而會無法正常出現中文字喔。

8. 然後接下來改的是 ganttproject 下面 resource 中的 pdf-export-themes 檔案夾中的 ganttproject.xsl 這個檔案,將其中的
sans-serif
字體名稱改為
Bitstream Cyberbit

好了,目前暫時可以收工了,接下來可以試試看輸出 PDF 的功能,選擇 Default, 應該就可以出現正常的中文 PDF 了,呵呵呵呵。

9. 最後,你可以用同樣的方法將 basic_landscape , samara 中相關檔案中的字體檔名都換掉,這樣 PDF 輸出的四個選項都會是正常的中文了 :D

小結語,假如你很熟悉 Java 的相關編譯,那麼小梅子建議你看原本作者教的方式,自己編譯會比較好,但假如你和我一樣肉腳,那麼就學我用現成的改改也可以用了 :D

PS : 另外原作者還提供了另一種 sazanami-gothic 字體,它也是符合 CJK 語系的,不過小梅子覺得它的中文字比較不好看,但假如你常用的是日文,那麼可能這種字體會比較適合你。

假如你要使用 sazanami-gothic 字體,那麼安裝方法也很簡單:

1. 先去下載 sazanami font 字體
http://sourceforge.jp/projects/efont/downloads/10087/sazanami-20040629.tar.bz2/

2. 同樣的將這個字體放置到 Java 字體下,方法如上

3. 直接將原作者製作的 org.ganttproject.impex.htmlpdf_2.0.0 裡面 lib 和 resource 下的檔案依照名稱完全置換掉即可。

7 則留言:

zaRa.H 渣拉貓 提到...

您好,我下載了GanttProject之後因為中文輸入一直有問題所以google到您的blog,依據您的教學指引下載了字體之後用spotlight卻找不到我的System/Library/Frameworks/JavaVM.framework/Home/lib/fonts/ 這個位置,很不好意思要請問您system這個最初的檔案夾是在哪裡嗎? 謝謝(鞠躬) P.S.我的OS是Lion

小梅子 提到...

Dear zaRa.H 渣拉貓

我也是使用 Lion , 擺放的位置和以前一樣。

你要先找到你的最高層目錄「Macintosh HD」,然後再找「System」,中文是「系統」,接下來都一樣啦,要自己一層層下去 :)

zarah 渣拉貓 提到...

謝謝你,我都照著做了,但不知為何PDF還是亂碼,希望移除再重來一次會好。謝謝。

小梅子 提到...

dear zaRa.H 渣拉貓

你測試成功了嗎,若是還有問題,歡迎再討論 :)

匿名 提到...

http://tera-com.fromc.jp/blog/tera-com/temp/org.ganttproject.impex.htmlpdf_2.0.zip

沒辦法下載這個檔案,還有別的地方可以下載嗎?

我現在用 winxp,不知道這個方法能不能用...

Business Planning HQ 提到...

As an alternative to gantt project, why not check out http://www.chartgantt.com

Faker 提到...

您好,想請教一下,我的OSX版本是10.8.5,安裝最新的Java版本是Version 8 Update 25,但JavaVM.framework目錄下並沒有Home這個檔案夾,剩下Versions這個檔案夾和Frameworks、JavaVM、Resources三個替身,往下找也沒有任何fonts相關的檔案夾,請問是OSX版本問題還是我安裝了不對的Java呢?