寫在前面:
在網上看到很多關於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中可以看見其配置,每一個fontFamily 標簽下的設置代表一個字體,name屬性代表配置字體的顯示名稱.配置完成后將相應的字體文件按照路徑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>
兩次遇到這個問題 必須的記錄下來了,本文轉載自https://blog.csdn.net/u011479200/article/details/78607812
謝謝這位博主很好的解決了我的問題