1. 程式人生 > >JasperReport| JasperReport中使用自定義字型(font)

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

中可以看見其配置,每一個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>