Jasper Studio 6.17报表每页末尾大量空白提前跳页问题咨询
问题根因
你当前的配置里detail band设置了固定高度130,Jasper报表引擎计算每页可容纳记录数时,默认会按你配置的band固定高度预估,而非实际渲染后的高度。只有第20、40等倍数的记录会加载图片,其余记录的图片字段为空,虽然你给图片加了isRemoveLineWhenBlank="true"会隐藏图片元素,但band的高度不会自动收缩,还是按130的高度占用页面空间,导致大量空白被浪费,提前触发换页。你之前调整splitType、替换图片字段的操作没有解决问题,就是因为没有修改band固定高度占用的核心逻辑。
解决步骤
直接修改jrxml配置即可:
- 调整detail band的基础配置,把固定高度改为仅文本的高度29,同时开启高度自适应拉伸:
<band height="29" splitType="Stretch" isStretchWithOverflow="true">
- 给图片元素增加拉伸类型配置,保证有图片时band可以自动拉伸到足够高度显示完整内容:
<reportElement x="0" y="29" width="190" height="100" isRemoveLineWhenBlank="true" stretchType="RelativeToTallestObject"/>
- 为了兼容Jasper 6.17版本的拉伸特性,在jasperReport根标签内新增全局配置项:
<property name="net.sf.jasperreports.allow.detail.band.stretch" value="true"/>
改完后重新编译jrxml文件再运行即可,没有图片的记录会按实际29px的高度计算页面占用,不会再出现提前换页的空白问题。
内容的提问来源于stack exchange,提问作者Victorqedu
相关产品推荐
相关产品推荐

