ireport引入到项目无法解析字体及pdf无法显示中文的解决方案

在使用ireport设计报表并引入项目时,可能会遇到字体无法被JVM解析的问题,表现为net.sf.jasperreports.engine.util.JRFontNotFoundException异常。解决方法包括:将字体(如仿宋.ttf)导入ireport,打包成jar并引入项目。对于PDF显示中文问题,需设置PDF font name为'STSong-Light',PDF Encoding为'UniGB-UCS2-H (ChineseSimplified)',并确保PDF Embeded为嵌入状态。同时,需要引入iTextAsian.jar库以解决PDF显示中文的异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

net.sf.jasperreports.engine.util.JRFontNotFoundException的解决方法

在用ireport做报表的时候,设计好格式以及引入数据,我们在ireport都可以展示出来,但是将文件引入到项目中后缺发现执行的时候出错。提示为:net.sf.jasperreports.engine.util.JRFontNotFoundException:Font '仿宋' is not availableto the JVM. See the Javadoc for more details。也就是说我们在设计irepot设计的时候,用到的字体无法被JVM解析。

针对这种问题,首先想到的就是将设计ireport中所用到的字体引入到项目中来,那么如何引入呢?本人是采用将字体打成jar包的方式引入到项目中。具体过程以及步骤如下:

1.      首先在网上下载后缀名为.ttf格式的字体,本文下载的simfang.ttf,也就是仿宋字体。

2.      打开ireport,将下载的字体装入到ireport中来,具体做法是点击工具--选项—font,具体如下图所示:

3.      将导入的字体打成jar

4.      将打好的jar包引入到项目中来即可。运行,查看效果

解决了字体的问题后,当我们想输出pdf格式的时候发现又出现了一个问题,那就是输出的pdf文档是空白的,里面什么都没有。其实不是出来,而是不显示中文而已。针对这种情况我们要在ireport中做如下修改,选中字体:

PDF font name:   STSong-Light

PDF Encoding:  UniGB-UCS2-H(ChineseSiplified)

PDF  Embeded:

重新放入到项目中来,这时候要引入一个新的jar---iTextAsian.jar(下载地址:http://sourceforge.net/projects/itext/files/extrajars/ExtraJars1.0/iTextAsian.jar/downloads,包中的结构如下图

该包主要是解决pdf无法显示中文的问题。若此包没有引入到项目中来,则会出现如下错误:

net.sf.jasperreports.engine.JRRuntimeException:Could not load the following font :
pdfFontName   : STSong-Light

pdfEncoding   :UniGB-UCS2-H(Chinese Siplified)

isPdfEmbedded : true

运行查看

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值