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

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,具体如下图所示:

ireport引入到项目无法解析字体及pdf无法显示中文的解决方案_第1张图片

ireport引入到项目无法解析字体及pdf无法显示中文的解决方案_第2张图片

3.      将导入的字体打成jar

ireport引入到项目无法解析字体及pdf无法显示中文的解决方案_第3张图片

ireport引入到项目无法解析字体及pdf无法显示中文的解决方案_第4张图片

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

ireport引入到项目无法解析字体及pdf无法显示中文的解决方案_第5张图片

解决了字体的问题后,当我们想输出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,包中的结构如下图

ireport引入到项目无法解析字体及pdf无法显示中文的解决方案_第6张图片

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

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

pdfEncoding   :UniGB-UCS2-H(Chinese Siplified)

isPdfEmbedded : true

运行查看

 

 

你可能感兴趣的:(报表设计及应用实例)