谁能帮助我开始在 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 http://repo.pentaho.org/artifactory/repo)并且我仍然不确定我是否拥有正确版本的罐子 - 但我找不到任何文档或其他示例可以继续,所以这都是反复试验。这本书没有列出任何版本,尽管它确实说明了使用了哪些 jar 文件。
有谁知道哪里可以得到MasterReport?和/或我似乎需要哪些版本的各种 pentaho 和相关罐子?
更新:通过使用 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>
这是一个例外:
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)