任何人都可以帮我开始在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)中获取依赖关系,我仍然不确定我是否有正确的罐子版本 - 但我可以'找到任何文档或其他示例继续,所以这是所有试验和错误。本书没有列出任何版本,尽管它确实说明了使用了什么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)
答案 0 :(得分:3)
您使用的是绝对过时的报告引擎版本。几年前我们停止使用名称JFreeReport。
当前版本是3.8,而你似乎使用0.8.9。不要这样做,否则你就处在痛苦和痛苦的土地上,因为所有现代工具(如报告设计师)都不适合你。
“Pentaho Reporting 3.5”一书至少要求Pentaho Reporting 3.5。 ;)
Pentaho在repository.pentaho.org运行一个公共Maven存储库,其中包含最新的pentaho报告文件。使用此链接查看最新版本的POM信息:
您只需要包含经典引擎核心以及最终可能需要的任何扩展项目。库和所有外部依赖项应由Maven自动下载。