在使用jasper iReport 进行web分页显示时,刚开始我是直接使用以下语句,对报表中的图片位置进行设置
JRAbstractExporter exporter = getExporterByExt("html", jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, imagesUriTmp);
但在使用过程中发现,如果该图片,在每一个分页中都需要显示的话,用以上的设置,只能保证在第一页中能正常显示该图片,在其他分页中,该图片是无法显示的。在对比了不同分页中的图片src属性之后,我发现,jasperreport每次所编译后得到的图片名都不一样,也没有将重新生成的图片再次写到对应的目录下,因此导致了分页后的报表图片无法显示。
exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, AppUtil.getRealPath(imagesDir));
exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR,Boolean.TRUE);
通过加入上述的两个图片参数,可以解决此分页显示图片的问题
从上面的参数名称可以看出,在每次导出时,报表会将重新生成的图片,再次写到本地目录下