JasperReports配置中文字体

项目场景:

使用JasperReports进行PDF导出


问题描述

JasperReports不兼容高版本itext引发的异常的评论中有网友讲6.19.0中文显示异常


原因分析:

可能是Maven编译时将字体文件损坏了,或者配置字体的方式有误,再或者和模板配置的字体不一致


解决方案:

  1. 先将Maven编译压缩二进制功能关闭,可参考Maven压缩资源导致文件损坏的解决
  2. 检查模板配置的字体
    比如:我这里配置模板的字体为华文宋体
    在这里插入图片描述
  3. 在项目中配置字体
    在这里插入图片描述
    其中:stsong.TTF(字体文件)fonts.xml(字体文件配置)jasperreports_extension.properties(JasperReports的配置文件)

fonts.xml

<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
    <fontFamily name = "华文宋体">
        <normal>stsong/stsong.TTF</normal>
        <bold>stsong/stsong.TTF</bold>
        <italic>stsong/stsong.TTF</italic>
        <boldItalic>stsong/stsong.TTF</boldItalic>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
        <exportFonts>
            <export key = "net.sf.jasperreports.html">'华文宋体', Arial, Helvetica, sans-serif</export>
            <export key = "net.sf.jasperreports.xhtml">'华文宋体', Arial, Helvetica, sans-serif</export>
        </exportFonts>
    </fontFamily>
</fontFamilies>

jasperreports_extension.properties

# JasperReports字体配置的工厂
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
# 指定字体配置的位置
net.sf.jasperreports.extension.simple.font.families.lobstertwo=stsong/fonts.xml

*注:如果以上还是不可以,本UP主也是没呀办法了,毕竟这样配置我的项目是可以正常显示中文的呀!

猜你喜欢

转载自blog.csdn.net/u013494827/article/details/123969962