Jasper Reports导出文本时排除band配置不生效,求正确解决方法
问题排查与修正
- 第一点:属性名中的导出格式标识写错
文本类型导出对应的格式标识是txt不是text,你需要把jrxml根节点下的属性改为:<property name="net.sf.jasperreports.export.txt.exclude.origin.band.1" value="title"/> - 第二点:版本兼容问题
JasperReports 4.5以下版本对文本导出的排除属性支持存在缺陷,如果替换属性后仍不生效,建议升级到6.4及以上的稳定版本再测试。 - 第三点:兜底替代方案
如果版本限制无法升级,可以直接在需要排除的band上添加打印条件,无需依赖导出属性,在<title>下的<band>节点中加入以下配置即可:
如果你是通过代码触发导出,也可以直接在导出配置中添加过滤规则,兼容性更强:<printWhenExpression><![CDATA[!net.sf.jasperreports.engine.export.JRTextExporter.class.isInstance($P{JASPER_REPORTER_EXPORTER})]]></printWhenExpression>SimpleTextExporterConfiguration exportConfig = new SimpleTextExporterConfiguration(); exportConfig.setExporterFilters(Collections.singleton( new ExporterOriginFilter(null, new BandReportOrigin("title")) )); TextExporter exporter = new TextExporter(); exporter.setConfiguration(exportConfig); // 后续填充导出参数执行导出即可
内容的提问来源于stack exchange,提问作者pundr01d
相关产品推荐
相关产品推荐

