解决方案一:
1、iReport报表自定义页面,需要分页的地方使用分页符进行分页
2、生成PDF报表
3、按照如下说明进行打印
采用这种方式,显示出的PDF报表有大片空白,但是打印是正常的。查看PDF时每页下方大片的空白导致用户体验极差,不采用此方式。
方案二:
还是使用“自定义”纸张,采用“海报”方式打印,PDF会自动把一张很长的页面的内容拆分到多个A4页面上,需要仔细调整每页的内容。
注:得用IE浏览器,360、谷歌等浏览器需要先另存到本地,然后再使用Adobe Reader自己提供的打印功能。
教客户使用时又发现问题了,因为是使用开发和调试的,但是到了实际的打印机上分页效果不一样。
方案三:
把每一页的内容单独放到一个子报表上,然后父表去调用6个子报表。每个子表前放一个分页符。这样终于完美解决问题了。
iReport分页打印开发调试过程中遇到的坑总结如下:
1、如果在子表中使用 Text Field 控件直接显示参数,那么不要放在 Detail 区,显示不出来(如果也同时显示从数据库中查询出的表数据,那么 Detail 区应该能显示出来);要放在 Page Header 或者 Title 区。
2、Field放在Detail区,也可以在 Page Header 区。
3、报表的 When No Data 属性,选择“All Sections,No Detail”。
4、在[窗口]-[组件面板]中可以找回组件面板。
5、主表的数据是从Java代码中通过JSON格式传进去的,主表中定义了200来个Field,如果需要在子表中使用这些数据,那么需要在子表中定义参数,然后在主表 Subreport 控件的 Parameters 属性中对子表参数赋值。
本文用菊子曰发布