gpt4 book ai didi

java - 在 Java 中从 Pentaho .prpt 报告文件生成 PDF - 依赖混淆

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:47 33 4
gpt4 key购买 nike

任何人都可以帮助我开始在 maven 环境中使用 java 从 Pentaho .prpt 文件生成 PDF 吗?

我有 Pentaho Reporting 3.5 for Java Developers 一书,我正在从那里尝试一个示例,本质上:

ResourceManager manager = new ResourceManager();
manager.registerDefaults();
Resource resource = manager.createDirectly(reportURL, MasterReport.class);
MasterReport report = (MasterReport) resource.getResource();
PdfReportUtil.createPDF(report, outputStream);

我的问题是找不到 MasterReport.class。

我一直在尝试从 Pentaho maven 存储库(http://repo.pentaho.org/artifactory/repo)中获取依赖项,但我仍然不确定我是否拥有正确版本的 jars - 但我找不到任何文档或其他示例继续进行,因此都是反复试验。这本书没有列出任何版本,尽管它确实说明了使用的 jar 文件。

有谁知道在哪里可以获得MasterReport?和/或我似乎需要哪些版本的各种 pentaho 和相关 jar ?

更新:通过使用 JFreeReport.class 而不是 MasterReport.class(请参阅下面我的乱码评论)我可以到达解析异常的地步:

这是我的 pom 片段:

    <dependency>
<groupId>pentaho</groupId>
<artifactId>pentaho-reporting-engine-classic</artifactId>
<version>0.8.9.8</version>
</dependency>

<dependency>
<groupId>pentaho</groupId>
<artifactId>pentaho-reporting-engine-classic-ext</artifactId>
<version>0.8.9.8</version>
</dependency>

<dependency>
<groupId>pentaho</groupId>
<artifactId>libloader</artifactId>
<version>0.3.7</version>
</dependency>

<dependency>
<groupId>pentaho</groupId>
<artifactId>libxml</artifactId>
<version>0.9.11</version>
</dependency>

<dependency>
<groupId>pentaho</groupId>
<artifactId>libformula</artifactId>
<version>0.1.18</version>
</dependency>

<dependency>
<groupId>jfree</groupId>
<artifactId>jcommon</artifactId>
<version>1.0.12</version>
</dependency>

<dependency>
<groupId>jfree</groupId>
<artifactId>jcommon-serializer</artifactId>
<version>0.2.0</version>
</dependency>

这里是异常(exception):

org.jfree.resourceloader.ResourceCreationException: Unable to parse the document
at org.jfree.xmlns.parser.AbstractXmlResourceFactory.create(AbstractXmlResourceFactory.java:215)
at org.jfree.resourceloader.ResourceManager.performCreate(ResourceManager.java:455)
at org.jfree.resourceloader.ResourceManager.create(ResourceManager.java:383)
at org.jfree.resourceloader.ResourceManager.create(ResourceManager.java:329)
at org.jfree.resourceloader.ResourceManager.createDirectly(ResourceManager.java:315)

最佳答案

您使用的报告引擎版本绝对过时。几年前我们就不再使用 JFreeReport 这个名字了。

当前版本是3.8,而你好像用的是0.8.9。不要那样做,否则您将身处痛苦和折磨的境地,因为所有现代工具(如报表设计器)都不适合您。

“Pentaho Reporting 3.5”一书至少需要 Pentaho Reporting 3.5。 ;)

Pentaho 在 repository.pentaho.org 运行一个公共(public) Maven 存储库,其中包含最新的 pentaho 报告人工制品。使用此链接查看最新版本的 POM 信息:

http://repository.pentaho.org/artifactory/webapp/browserepo.html?pathId=pentaho%3Apentaho-reporting-engine%2Fpentaho-reporting-engine-classic-core%2F3.8.1-GA%2Fpentaho-reporting-engine-classic-core-3.8.1-GA.pom

您所需要的只是包括经典引擎核心和最终您可能需要的任何扩展项目。库和所有外部依赖项应由 Maven 自动下载。

关于java - 在 Java 中从 Pentaho .prpt 报告文件生成 PDF - 依赖混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7161753/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com