【问题标题】:Dynamic Reports - ".toPdf(<<filepath>>)" function is not working in Java动态报告 - “.toPdf(<<filepath>>)”函数在 Java 中不起作用
【发布时间】:2019-11-27 14:48:02
【问题描述】:

我使用的是 Java 8,动态报告版本是 6.0.0。 在 pom.xml 中,我添加了这个依赖:

<dependency>
    <groupId>net.sourceforge.dynamicreports</groupId>
    <artifactId>dynamicreports-core</artifactId>
    <version>6.0.0</version>
</dependency>

这段代码是用来生成报表参数的:

JasperReportBuilder report = new JasperReportBuilder();
report.setPageMargin(DynamicReports.margin().setLeft(30).setRight(30).setTop(10).setBottom(10));
report.setPageFormat(PageType.A4, PageOrientation.PORTRAIT);
report.title(cmp.subreport(subReport1));

这里,变量subreport1 包含所有报告数据。它们经过验证是正确的。

生成所有报表数据后,这是我执行的将报表详细信息写入文件的代码:

FileOutputStream st = new FileOutputStream("<<DUMMY_FILE_PATH>>");
report.toPdf(st);

在存在.toPdf 的这一行,抛出以下异常:

Exception in thread "main" java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.<init>(SimpleFontExtensionHelper.java:149)
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.getInstance(SimpleFontExtensionHelper.java:131)
    at net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.ensureFontExtensions(FontExtensionsRegistry.java:80)
    at net.sf.jasperreports.engine.fonts.FontExtensionsRegistry.getExtensions(FontExtensionsRegistry.java:57)
    at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:130)
    at net.sf.jasperreports.engine.DefaultJasperReportsContext.getExtensions(DefaultJasperReportsContext.java:277)
    at net.sf.jasperreports.engine.fonts.FontUtil.getFontInfo(FontUtil.java:191)
    at net.sf.jasperreports.engine.fonts.FontUtil.getFontInfo(FontUtil.java:291)
    at net.sf.jasperreports.engine.fonts.FontUtil.getAwtFontFromBundles(FontUtil.java:476)
    at net.sf.jasperreports.engine.fonts.FontUtil.getAwtFontFromBundles(FontUtil.java:466)
    at net.sf.dynamicreports.design.transformation.StyleResolver.getFont(StyleResolver.java:122)
    at net.sf.dynamicreports.design.transformation.StyleResolver.getFont(StyleResolver.java:100)
    at net.sf.dynamicreports.design.transformation.StyleResolver.getFontHeight(StyleResolver.java:69)
    at net.sf.dynamicreports.design.transformation.TemplateTransform.getTextFieldHeight(TemplateTransform.java:1391)
    at net.sf.dynamicreports.design.transformation.ComponentTransform.textField(ComponentTransform.java:395)
    at net.sf.dynamicreports.design.transformation.ComponentTransform.component(ComponentTransform.java:155)
    at net.sf.dynamicreports.design.transformation.ComponentTransform.list(ComponentTransform.java:303)
    at net.sf.dynamicreports.design.transformation.BandTransform.band(BandTransform.java:231)
    at net.sf.dynamicreports.design.transformation.BandTransform.transform(BandTransform.java:86)
    at net.sf.dynamicreports.design.base.DRDesignReport.transform(DRDesignReport.java:155)
    at net.sf.dynamicreports.design.base.DRDesignReport.<init>(DRDesignReport.java:127)
    at net.sf.dynamicreports.design.base.DRDesignReport.<init>(DRDesignReport.java:111)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperReportDesign(JasperReportBuilder.java:299)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.getJasperParameters(JasperReportBuilder.java:346)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperPrint(JasperReportBuilder.java:363)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.export(JasperReportBuilder.java:896)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toPdf(JasperReportBuilder.java:735)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toPdf(JasperReportBuilder.java:724)

请告诉我此错误的解决方案。

【问题讨论】:

  • 您好,指定链接与动态报表无关。
  • @AshwinBharadwaj:但潜在的问题很可能是同一个问题:您的类路径上有一个旧的 XML 解析器实现。

标签: java dynamic-reports


【解决方案1】:

我找到了实际的解决方案。 xerces jar 和动态报告 jar 之间存在版本不匹配。通过添加以下依赖项解决了它:

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.11.0</version>
</dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    相关资源
    最近更新 更多