JasperReport+Ireport导出PDF出现中文不显示或样式失效?

最近使用Ireport+JasperReport进行设置报表的预览打印,出现pdf中文不显示及设置样式失效,总结解决方案 

方法一:

1.下载字体文件,比如STSONG.ttf文件

2..创建fonts.xml *记得必须要扫描到这个配置文件哦

fonts.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
    <fontFamily name="华文宋体">
        <normal>fonts/STSONG.TTF</normal>
        <bold>fonts/STSONG.TTF</bold>
        <italic>fonts/STSONG.TTF</italic>
        <boldItalic>fonts/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>

3.创建jasperreports_extension.properties

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=fonts/fonts.xml

 **fonts是放fonts.xml的文件,字体包和配置文件都放在那,名字自定义的

方法二:如果还要引入其他字体

1.引入的字体包,一定不能是中文,要英文,或字母自定义就可以

 比如微软雅黑,就自定义名字weiruanyahe(其他名字也可)

引入字体后,其余步骤和方法一一样,只是引入字体不同而已

 *****有个缺点,就是如果要使用到什么字体,就得把该字体引入才可使用,很麻烦,有更方便的解决方案,欢迎分享

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jasperreport是一个广泛使用的报表生成工具,它能够生成多种格式的报表,包括PDF。在导出PDF报表时,有时会遇到"could not load the following font"错误,这是由于JasperReport找不到所需的字体文件导致的。 解决这个问题的方法有以下几种: 1. 确保字体文件存在:首先,需要确认所使用的字体文件确实存在于系统中。可以通过查看字体文件所在的路径,或者在系统中搜索相应的字体文件来确认。 2. 添加字体文件到classpath:如果字体文件确实存在,但是JasperReport仍然找不到,可能是因为字体文件不在classpath中。在JasperReport的classpath中添加正确的字体文件路径,以便系统可以找到并加载它们。 3. 修改JasperReport配置文件:可以通过修改JasperReport的配置文件来解决字体加载问题。在jasperreports_extension.properties文件中添加以下配置: net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 这样可以告诉JasperReport使用默认的字体扩展注册工厂,并加载相应的字体。 4. 更换字体文件:如果以上方法都无法解决问题,可以尝试将字体文件替换为其他可用的字体文件。可以找到适合的字体文件,并将其放置在JasperReport的classpath中,然后重新导出报表,看是否解决了问题。 总之,解决JasperReport PDF导出错误"could not load the following font"问题的关键是确保字体文件存在且能够被系统正确加载。如果以上方法仍然无法解决问题,可能需要进一步调查系统配置和字体文件是否存在异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值