Aspose.Slides 用于 JasperReports
Aspose.Slides for JasperReports 为 JasperReports Library 和 JasperReports Server 添加了 PowerPoint 导出功能,使 Java 应用程序和报表服务器能够在没有 Microsoft PowerPoint 的情况下将已填充的报表另存为演示文稿。
它可以将已填充的报表导出为 PPT 和 PPTX(每个报表页对应一张幻灯片),并且还能导出为 PDF 和 HTML。
首次导出
这些步骤会编译一个单行报表,填充数据并使用来自 Maven Central 的 JasperReports 6.16.0 将其导出为 PPTX。您需要 JDK 11 或更高版本以及 Apache Maven。
-
从下载页面下载 ZIP 并解压。其 lib 文件夹按 JasperReports 版本范围划分子文件夹,每个子文件夹包含对应范围的 jar。对 JasperReports 6.16.0,將 lib/JasperReports 6.5.0 - 6.16.0 (JDK 1.6)/aspose.slides.jasperreports.library-26.6.jar 复制到空项目文件夹中。
-
该 jar 包随 ZIP 提供,而非来自 Maven 仓库,因此需要将其安装到本地 Maven 仓库。 在项目文件夹中运行以下命令:
mvn install:install-file "-Dfile=aspose.slides.jasperreports.library-26.6.jar" "-DgroupId=com.aspose" "-DartifactId=aspose-slides-jasperreports" "-Dversion=26.6" "-Dpackaging=jar"
- 将此 pom.xml 保存到项目文件夹中。它会添加 JasperReports 6.16.0 和您刚安装的 jar,并指定要运行的类。JasperReports 6.16.0 声明了一个未在 Maven Central 上的补丁版 iText,因此文件中排除了它;Aspose 导出器不需要它。
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>hello-jasper-export</artifactId>
<version>1.0</version>
<properties>
<maven.compiler.release>11</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<exec.mainClass>HelloExport</exec.mainClass>
</properties>
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.16.0</version>
<exclusions>
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-slides-jasperreports</artifactId>
<version>26.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.15.0</version>
</plugin>
</plugins>
</build>
</project>
- 将此报表设计保存为 hello.jrxml,放在项目文件夹中。它会在标题带中打印一行文字:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="Hello" pageWidth="595" pageHeight="842" columnWidth="555"
leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<title>
<band height="50">
<staticText>
<reportElement x="0" y="0" width="555" height="40"/>
<textElement>
<font size="24"/>
</textElement>
<text><![CDATA[Hello from JasperReports!]]></text>
</staticText>
</band>
</title>
</jasperReport>
- 将以下代码保存为 src/main/java/HelloExport.java。它会编译设计,使用一条空记录填充报表,并使用
ASPptxExporter导出结果:
import java.util.HashMap;
import com.aspose.slides.jasperreports.ASPptxExporter;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
public class HelloExport {
public static void main(String[] args) throws Exception {
// 编译报表设计并用一条空记录填充。
JasperReport report = JasperCompileManager.compileReport("hello.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(report, new HashMap<String, Object>(), new JREmptyDataSource());
// 将填充的报表导出为 PPTX。
ASPptxExporter exporter = new ASPptxExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "hello.pptx");
exporter.exportReport();
}
}
- 在项目文件夹中运行以下命令:
mvn compile exec:java
程序会在项目文件夹中生成 hello.pptx,其中包含一张包含报表文本的幻灯片。编译器会提示代码使用了已废弃的 API:导出器通过 JRExporterParameter 接收输入和输出,不支持较新的 setExporterInput 和 setExporterOutput 配置。在 Linux 上必须安装 fontconfig 和至少一种字体,否则填充报表会失败。没有许可证时,每张幻灯片中心会显示评估水印——参见授权许可。若要导出为 PPT、PDF 或 HTML,请参见导出为 PPT、PPTX、PDF 和 HTML。