Jasper报表使用扩展字体与字体加粗

使用JasperSoft Studio编辑报表模板时,使用到了扩展的字体(特殊字体),在JAVA的工程上,需要做字体定义处理。

在Resources下增加 jasperreports_extension.properties 文件,在文件内配置字体的参数(字体配置文件)

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.lobstertwo=jasperconf/fonts.xml

在字体配置文件fonts.xml中设定扩展字体的相关信息

<fontFamilies>
    <fontFamily name="MingLiU">
        <normal>fonts/mingliu.ttf</normal>
        <!-- <bold>fonts/mingliu.ttf</bold>
        <italic>fonts/mingliu.ttf</italic>
        <boldItalic>fonts/mingliu.ttf</boldItalic> -->
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
     
        <exportFonts>
            <export key="net.sf.jasperreports.html">'MingLiU', Arial, Helvetica, sans-serif</export>
            <export key="net.sf.jasperreports.xhtml">'MingLiU', Arial, Helvetica, sans-serif</export>
        </exportFonts>
    </fontFamily>

</fontFamilies>

配置后,原先使用到中文并且不显示中文的地方都正常了,不过一开始我没注释掉<bold>的定义,发现在报表模板中加粗的字体无效,还是正常的字体。折腾了很久,后来查看Jasper的处理源码,才发现如果定义了字体的<bold>,就会优先使用字体文件中的粗体字体,而我使用的字体文件,是没有包含粗体的数据的,因此总是普通的字体。

因此fonts.xml中定义的是由字体文件提供的特效,如果字体中没有,就不要定义,例如斜体效果也不需要定义,用报表模板的就可以。


 

 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值