jasperreport使用心得

好几年前曾将用过jasperreport,当时的设计工具为ireport,如今已经变成jasperstudio,看来eclipse成为主流已是不争的事实了!

由于项目的需要,不得不重新学习一下这个新的工具了,总体上来说其设计思路还是不变的。想系列学习的,可以参照如下地址进行学习:http://blog.csdn.net/pigdreams/article/month/2017/02

本文只对项目中用的相关知识进行总结如下:

1、导出pdf中文问题,由于采用的是itext生成pdf,早期版本采用亚洲语言包可以满足要求,新的版本已经不行了,需要将字体达成jar包,添加依赖。具体可参照csdn那位的博客,在此也向其表示感谢!

关于粗体、斜体的问题,如果采用的字体没有单独的文件,请移除相关的节点,否则在开发环境里面有效果,正式运行就会丢失效果了!

 

2、图表的问题,jasperreport本身采用的是jfreechat,对于大多数项目已经能够满足,但对于我们项目来说,图表个性化太强,jfreechart不能满足要求,好在Jasperreport提供了一个 custom visualization component.

其原理是采用js绘制成svg,在填充报表时采用生成的svg(如pdf、html格式)或图片(如word格式)进行填充。

官方有相关的地址进行说明:http://community.jaspersoft.com/wiki/custom-visualization-component-v60x

另外jasperreport libaray 本身是不带 custom visualization 相关的jar包,可通过下载jasperreport server项目,在其中找到相关的jar包。

3、在生成报表的过程中,发现临时生成的svg文件不能删除,同时依赖的js文件不断创建删除。苦于找不到custom visualization component的源码(jasperreport官网也没找到),因此自能反编译相关类了。

进行小手术!

  • 判断临时目录是否存在,不存在创建,不再删除

  •   对于无法删除的svg文件的原因的是在读取流的过程中,没有close

4、页面好像只有detail band可以自动调整高度,其它band除非有sub report

5、多个模板合成,可以有两种方式。

  • 先填充第一个模板,然后依次填充其它模板,所有页面填充完成后,将第一个模板以后的页面添加到第一个模板中。

 

 

  • 采用批量导出的功能,所有模板依次填充,然后放入一个list中,采用exporter实现导出。

 

总的来说,个人倾向与第二种方式,可以增加更加灵活控制的参数,比如pdf可以增加bookmarker,甚至加密等。

转载于:https://my.oschina.net/williamwang2016/blog/997669

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值