iReport 3.7.1/4.0.2產生PDF報表的字體設定

依照新版iReport PDF顯示中文的設定要產生iReport的PDF報表,卻無法正確產生檔案,試了半天終於成功。

使用預設的宋體或黑體

iReport使用iText來產生PDF,而中日韓字體設定存於iTextAsian.jar裡的com\lowagie\text\pdf\fonts\cjkfonts.properties:

# Supported CJK fonts and encodings
HeiseiMin-W3=Adobe-Japan1-UCS2_UniJIS-UCS2-H_UniJIS-UCS2-V_UniJIS-UCS2-HW-H_UniJIS-UCS2-HW-V_
HeiseiKakuGo-W5=Adobe-Japan1-UCS2_UniJIS-UCS2-H_UniJIS-UCS2-V_UniJIS-UCS2-HW-H_UniJIS-UCS2-HW-V_
KozMinPro-Regular=Adobe-Japan1-UCS2_UniJIS-UCS2-H_UniJIS-UCS2-V_UniJIS-UCS2-HW-H_UniJIS-UCS2-HW-V_

STSong-Light=Adobe-GB1-UCS2_UniGB-UCS2-H_UniGB-UCS2-V_
STSongStd-Light=Adobe-GB1-UCS2_UniGB-UCS2-H_UniGB-UCS2-V_

MHei-Medium=Adobe-CNS1-UCS2_UniCNS-UCS2-H_UniCNS-UCS2-V_
MSung-Light=Adobe-CNS1-UCS2_UniCNS-UCS2-H_UniCNS-UCS2-V_
MSungStd-Light=Adobe-CNS1-UCS2_UniCNS-UCS2-H_UniCNS-UCS2-V_

HYGoThic-Medium=Adobe-Korea1-UCS2_UniKS-UCS2-H_UniKS-UCS2-V_
HYSMyeongJo-Medium=Adobe-Korea1-UCS2_UniKS-UCS2-H_UniKS-UCS2-V_
HYSMyeongJoStd-Medium=Adobe-Korea1-UCS2_UniKS-UCS2-H_UniKS-UCS2-V_

此檔案設定好PDF可使用的組合是:

簡繁中文 字體 PDF font name Pdf Encoding
簡體中文 宋體 STSong-Light
STSongStd-Light
UniCNS-UCS2-H
UniCNS-UCS2-V
繁體中文 黑體
宋體
宋體
Mhei-Medium
Msung-Light
MSungStd-Light
UniCNS-UCS2-H
UniCNS-UCS2-V

只要使用對應的字體與其編碼就能順利產生含中文的PDF檔。

使用字體擴充

要使用宋體或黑體以外的字體則必須透過iReport的Font Extension。

  1. 由功能表【工具】→【選項】→【Fonts】→〔Install Font〕,在【True Type font】欄位裡輸入 c:\windows\fonts\kaiu.ttf以使用標楷體

  2. 把【Family Name】改成kaiu,【PDF Encoding】選用IDentity-H

    Font extension

  3. 新字體設定好後,按〔Export as extension〕,將輸出命名為kaiu.jar存入CLASSPATH指定的資料夾裡(如/WEB-INF/lib)

字體設定操作

設定使用新字體的步驟:

  1. 用Ctrl+左鍵選用所有欄位
    select field

  2. 再由屬性視窗裡將Pdf font name改成要使用的字體,Pdf Encoding選用對應的編碼
    pdf font name

iReport 3.7.1 Preview PDF時會出現讀不到字型檔的錯誤,但4.0.2則正常。

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

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