也谈JasperReport+iReport的中文配置

时间:03/06/2024 22:09:59   作者:ChenReal    阅读:146

这是在旧电脑“考古”找回的一篇丢失了十多年的文章,原文发布时间是2009年5月23日。

非常有幸在项目中要用到这个大名鼎鼎的报表制作工具——JasperReport。

做中文报表的话,自然要先搞定中文字体,同时这个也是很多新手的非常头痛的拦路虎之一(我也为之郁闷了两天)。在这个方面随便baidu or google都会找到一堆的资料,这些资料可供参考,但是参考完了并不完全能解决所有问题,故此仍然会让新手万分抓狂。

今天我的“也谈”也就是想将我自己郁闷两天之后的经验总结一下,供后来人参考参考吧。

OK,不多说了,开始吧!

JasperReport的工作原理简单来说就是:

  • 1、用iReport制作可视化的jrxml模板;
  • 2、编译成*.jasper二进制模板;
  • 3、Fill数据然后export完整报表。

如果baidu或者google过一些资料的人自然应该了解到,要让iText导出的PDF显示中文需要在ClassPath里面增加几个包:

  • iText.jar
  • iTextAsian.jar
  • iTextAsianCmaps.jar

也就是把以上几个文件copy到iReport安装目录的lib里面。然后,设置文本区域的字体属性(如图);如果觉得一个个设置太累了,可以在Style->Report Font设置一个模板。

jasper_01.jpg

然后执行编译生成了PDF文件,很兴奋地想去看一下,打开之后可能发现了中文字全部都是空白……什么都没有。这种情况很可能是阅读器的问题实事证明了Foxit会出现这种情况,但是如果你用的是Adobe的阅读器,那就一点问题都没有了!

好了,这里解决了中文的显示问题,下面还有可一个关于“字体”的课题,你会发现上面设置好了的字体只有宋体一种,如果我想用黑体的话就无从入手了!下面将一下引用外部字体的方法。

  • 1、将C:\windows\fonts下面的黑体字simhei.ttf copy到 iReport\fonts里面。
  • 2、在Options->Fonts Path里面设置外部字体的ClassPath(如图)

jasper_02.jpg

  • 3、回到字体属性哪里设置设置黑体字吧,注意PDF Encoding!(再来一张图)

jasper_03.jpg

好了这样子的话就基本完工了!继续研究Jasper中……

 

评论
0/200