文章目录
最近使用JasperReport报表,JasperReport配合iReport用起来还算简单而且JasperReport的功能还是很强大的,不过由于JasperReport相应的文档比较少,遇到问题也比较多,现在就讲讲遇到的比较郁闷的一些问题.

1.生成PDF是中文显示不正确:这个由于JasperReport用itext的来生成PDF,而itext生成中文还需要itextasia的包,所以需要
itext.jar和itextasia.jar都在classpath中,而还需要讲文本的字体设为STsong_light并且PDF encoding设为:UniGB-UCS2-H (Chinese Simplified)或UniGB-UCS2-v (Chinese Simplified)选中PDF Embedded这样一般就没问题了

2.在Linux下JasperReport抛出Error initializing graphic environment的异常,经过分析得知,该错误是由于Jasperreport程序在转换为PDF时,采用了AWT方式,而AWT会调用操作系统本地窗口资源图.找到问题所在,就可以着手解决,解决的方法也很简单,就是让JVM启动时不检测图形界面,由于我们是用的是Tomcat,所以在 /tomcat/bin/catalina.sh 中添加以下的启动参数,即:
CATALINA_OPTS=’-Djava.awt.headless=true’

如果使用的不是Tomcat系统,可在启动JVM的地方添加:
JAVA_OPTS=’-Djava.awt.headless=true’
然后重新启动Tomcat,问题解决。

<br />注意:-Djava.awt.headless=true这个参数是在jdk1.4.1以后才引入的,如果系统使用的JDK是1.4以下的版本.<br />

对于 Java 1.4 以前,下载 xvfb 或者其他的虚拟 x-window 软件,再在 Java 运行环境里的 DISPLAY 作相应改变。

3.JasperReport的一些优化:
JasperRopert是先compile 再 fill 后 export 三步组成,这里compile是可以事先做好的,先将jrxml编译成jasper文件,当fill时直接fill这个jasper文件(可以读成InputStream,也可以直接给明路径)就可以了,这样在运行时就少了compile一步,速度有所提升,但缺点时每当改了jrxml都要自己先compile好才行哦.

文章目录