jfreechart的支持不算完美,只是实现了部分的图表生成,但对于一般项目,也是足够用的。
数据,纵坐标数据,横坐标标签,纵坐标标签,分类标准等等),jasperreport+jfreechart会自动进行数据的分类统计输出,这点是很人性化的。
看过jasperreport的源代码,发现,图表在HTML格式输出的时候,首先是输出一张图片,或者放在具体目录下,或者放在临时的response
里,然后进行调用、输出展示。(如果选用后者的输出方式,需要注意:1.x版本后的输出需要对web.xml进行配置,配置一个servlet进行输
出。)这样就造成了一个问题,就是当多用户同时访问页面的时候,用户看到的数据是正确的,但是图片却可能是别人产生的图片!
这可能是由于HTML浏览器对图片的引用时机不对,解决的方案是这样的:由于HTML格式的输出是字符形式的(PDF是二进制流形式的),所以我们选择首
先把整个图表输出到字符缓冲区中,然后进行一次性输出,这样,我们辅助浏览器完成对图片引用时机的修正。当然,也可以这样做:通过修改源代码,把图片输出
到不同的临时目录,这样的话,想引用错基本都不可能了J
在HTML输出的时候,一定要记得设置编码格式,通过exporter的CHARACTER_ENCODING属性来设置。而且,在HTML中输出的时
候,可以不对报表进行分页操作,即取消分页。
还有,jfreechart默认输出的图片是进行抗锯齿处理过的。对于图形来说,这样会让图像显示的更圆润,而对于文字来说,可能就会显示变得模糊。解决
方案:修改源代码。可以修改jasperreport的源代码,也可以修改jfreechart的源代码,只需按照如下代码进行改进即可:
jfreechart.getRenderingHints().put(RenderingHints._ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
上面的代码将图片输出的文本抗锯齿关闭,而图像依然有抗锯齿处理,所以图片相对好看。不过,有一点需要注意:字体尽量是宋体,字号最好在12到14之间,
这样能达到最好的显示效果。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-26308-8.html
时代不同了
多数都是自作孽不可活”更是明白话