JasperReport| JasperReport中使用自定義字型(font)
寫在前面:
在網上看到很多關於ireport對JasperReport的操作,關於使用JasperReport Studio的相關資料很少.本文主要是使用JasperReport Studio操作來自定義字型然後在報表中使用.
操作壞境:
Windows10 64位
1.獲取字型
Windows10系統C:\Windows\Fonts
資料夾下字型,這裡的字型都是TTC格式的合成字型.
由於在JasperReport中使用的字型格式是TTF字型,這裡需要將TTC合成字型中提取出需要的TTF字型.TTC和TTF相關介紹和字型的提取見我的另外一篇文章.
TTF和TTC字型介紹
2.製作字型Jar包
這裡以微軟的雅黑字型TTC字型來提取TTF字型為例子:
雅黑的所有字型: 通過字型預覽可以知道各種格式的雅黑字型.每一個TTC字型都可以展開成多個TTF字型.
msyh.ttc 雅黑
msyhl.ttc 雅黑高亮
msyhbd.ttc 雅黑加粗
msyh.ttc字型分解成了兩個TTF的字型: (這個字型功能基本一致,具體可以看字型詳情)
msyh001.ttf
msyh002.ttf
選中專案右鍵->Properties->搜font->Configure Workspace Settings
設定字型,注意在Bold,Italic…選項卡中可以設定字型相應對應的的ttf檔案.
配置解釋:
PDF Encoding : 配置該字型可以在生成PDF報表時候使用,尤其是在解決PDF中中文不顯示問題,但是並不是所有的字型都是支援在PDF中顯示中文的.
匯出字型成jar包: Yves-雅黑.jar
3.使用字型
直接將匯出生成的Yves-雅黑.jar
加進工程的classpath既可.
然後在工程知直接使用.
PS:有時候當我們需要自己定義多個字型的的時候,不想像上面一樣每一個字型都生成一個Jar包.這裡我們使用配置的方式來完成自定義多個字型.
首先用上面的方式生成一個字型的jar包.然後修改jar包中的配置檔案.
在配置檔案fontsfamilyXXXXX.xml
fonts/Yves_雅黑/msyh001.ttf
存放既可.
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="Yves-雅黑">
<normal><![CDATA[fonts/Yves_雅黑/msyh001.ttf]]></normal>
<pdfEncoding><![CDATA[Identity-H]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
<exportFonts/>
</fontFamily>
</fontFamilies>