Apache POI XSLF
用于 PPTX 演示文稿的开源 Java API
通过 Java 库创建、编辑和合并 Microsoft PowerPoint OOXML 演示文稿。
Apache POI XLSF 入门
首先,您需要在系统上安装 Java 开发工具包 (JDK)。如果您已经拥有它,请继续访问 Apache POI 的 下载 页面以获取存档中的最新稳定版本。将 ZIP 文件的内容提取到可以将所需库链接到 Java 程序的任何目录中。就这些!
在基于 Maven 的 Java 项目中引用 Apache POI 更加简单。您只需在 pom.xml 中添加以下依赖项,并让您的 IDE 获取和引用 Apache POI Jar 文件。
Apache POI Maven 依赖
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
用于创建新演示文稿并将幻灯片附加到现有文件的 Java API
Apache POI XLSF 使计算机程序员能够从头开始以 PPTX 文件格式创建新的 PowerPoint 演示文稿。开发人员还可以根据需要转换现有的演示文稿。它提供了阅读和修改现有演示文稿以及根据需要将幻灯片附加到现有演示文稿的能力。
创建演示文稿并添加幻灯片 - Java
// create a new PPTX file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slide.pptx"));
// create a new slide show
XMLSlideShow xmlSlideShow = new XMLSlideShow();
// save file
xmlSlideShow.write(fileOutputStream);
从 Java 应用程序中的预定义幻灯片布局创建新幻灯片
Apache POI XLSF API 支持从 PPTX 演示文稿中的预定义幻灯片布局添加新幻灯片。 幻灯片版式包含显示在幻灯片上的所有内容的格式、定位和占位符框。 PowerPoint 演示文稿有几种幻灯片布局;首先,您需要查看哪些幻灯片版式可供使用。有不同的幻灯片母版,在每个幻灯片母版中,有几种幻灯片版式。
标题布局幻灯片 - Java
// create a new PPTX file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slidelayout.pptx"));
// create a new slide show
XMLSlideShow xmlSlideShow = new XMLSlideShow();
// initialize slide master object
XSLFSlideMaster xslfSlideMaster = xmlSlideShow.getSlideMasters().get(0);
// set Title layout
XSLFSlideLayout xslfSlideLayout = xslfSlideMaster.getLayout(SlideLayout.TITLE);
// create a new slide with title layout
XSLFSlide xslfSlide = xmlSlideShow.createSlide(xslfSlideLayout);
// select place holder
XSLFTextShape xslfTextShape = xslfSlide.getPlaceholder(0);
// set title
xslfTextShape.setText("Test");
// save file
xmlSlideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();
使用 Java 合并多个 PPTX 演示文稿
您是否有多个 PPTX 演示文稿要合并为一个演示文稿? Apache POI XLSF API 肯定可以帮助您并使 Java 开发人员能够将他们的多个 PPTX 文件合并在一起。
合并演示文稿的幻灯片 - Java
// create a new PPTX file
FileOutputStream fileOutputStream = new FileOutputStream("MergegSlide.pptx");
// select two PPTX files
String[] inputFiles = {"Slide.pptx", "SlideLayout.pptx"};
// create a new slide show
XMLSlideShow slideShow = new XMLSlideShow();
// merge slides
for(String file : inputFiles){
FileInputStream inputstream = new FileInputStream(file);
XMLSlideShow xmlSlideShow = new XMLSlideShow(inputstream);
for(XSLFSlide srcSlide : xmlSlideShow.getSlides()) {
slideShow.createSlide().importContent(srcSlide);
}
}
// saving file
slideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();