这是在旧电脑“考古”找回的一篇丢失了十多年的文章,原文发布时间是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设置一个模板。
然后执行编译生成了PDF文件,很兴奋地想去看一下,打开之后可能发现了中文字全部都是空白……什么都没有。这种情况很可能是阅读器的问题实事证明了Foxit会出现这种情况,但是如果你用的是Adobe的阅读器,那就一点问题都没有了!
好了,这里解决了中文的显示问题,下面还有可一个关于“字体”的课题,你会发现上面设置好了的字体只有宋体一种,如果我想用黑体的话就无从入手了!下面将一下引用外部字体的方法。
- 1、将C:\windows\fonts下面的黑体字simhei.ttf copy到 iReport\fonts里面。
- 2、在Options->Fonts Path里面设置外部字体的ClassPath(如图)
- 3、回到字体属性哪里设置设置黑体字吧,注意PDF Encoding!(再来一张图)
好了这样子的话就基本完工了!继续研究Jasper中……