【发布时间】:2011-08-23 13:27:13
【问题描述】:
谁能帮助我开始在 maven 环境中使用 java 从 Pentaho .prpt 文件生成 PDF?
我有面向 Java 开发人员的 Pentaho Reporting 3.5 这本书,我正在尝试从那里尝试一个示例,基本上:
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) 中获取依赖项,但我仍然不确定我是否有正确版本的 jar - 但我找不到任何文档或其他示例继续进行,所以这都是反复试验。这本书没有列出任何版本,尽管它确实说明了使用的 jar 文件。
有人知道我在哪里可以获得 MasterReport 吗?和/或我似乎需要各种 pentaho 和相关 jar 的哪些版本?
更新:通过使用 JFreeReport.class 而不是 MasterReport.class(请参阅下面我的乱码 cmets),我可以得到解析异常:
这是我的 pom sn-p:
<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>
这是一个例外:
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)
【问题讨论】:
-
我在 repository.pentaho.org 找到了另一个 maven 存储库 - 如果我有任何乐趣,我会试一试并发布更新。
-
我敢肯定,这是一个充满伤害的世界。我猜您可以使用 getClass().getResourceAsStream() 或 new URL(reportUrl).openConnection() 等打开 reportUrl?
-
是的,报告文件参考很好,充满了看似合理的乱码二进制文本。