Apache POI HSLF
适用于 Microsoft® PPT 演示文件格式的 Java 库
将幻灯片和图像添加到演示文稿中,使用开源免费 Java API 转换 PPT 文件。
Apache POI HSLF 入门
首先,您需要在系统上安装 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-scratchpad</artifactId>
<version>4.1.0</version>
</dependency>
动态创建新的 PPT 或修改现有的演示文稿
Apache POI HSLF 使程序员能够以 PPT 文件格式创建新的 PowerPoint 演示文稿。开发人员还可以根据需要转换现有的演示文稿。 API 还支持从 PowerPoint 演示文稿中提取文本、图像、声音、嵌入对象等数据的功能。
创建 PPT 文件 - Java
// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slide.ppt"));
// create a new slide show
HSLFSlideShow xmlSlideShow = new HSLFSlideShow();
// save file
xmlSlideShow.write(fileOutputStream);
为 PPT 添加幻灯片、图像和自定义页眉和页脚
开发人员可以使用 Apache HSLF API 在 PPT 演示文稿中轻松添加新幻灯片并根据自己的需要修改现有幻灯片。开发人员现在可以将自定义页眉和页脚添加到他们的演示文稿中。它还完全支持为幻灯片添加标题、创建具有预定义布局的幻灯片、使用幻灯片/形状背景等等。
通过 Java 在 PPT 中插入图像
- 使用 FileOutputStream 创建一个新的 PPT 文件,并将输出文件名作为字符串传递 new File() 的实例
- 使用 HSLFSlideShow() 方法添加新幻灯片
- 使用 createSlide() 方法添加新幻灯片
- 使用 IOUtils.toByteArray() 方法获取图像字节,并通过 FileInputStream() 方法将图像传入其中
- 使用 hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG) 方法将图像添加到幻灯片。该方法接受图片字节和图片类型作为参数
- 写入并保存文件
在 PPT 中添加图像 - Java
// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("AddImage.ppt"));
// create a new slide show
HSLFSlideShow hslfSlideShow = new HSLFSlideShow();
// create slide
HSLFSlide slide = hslfSlideShow.createSlide();
// load image
byte[] picture = IOUtils.toByteArray(new FileInputStream(new File("apache-poi-logo-min.png")));
// add image
HSLFPictureData hslfPictureData = hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG);
HSLFPictureShape pictureShape = slide.createPicture(hslfPictureData);
// save file
hslfSlideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();
使用 Java API 将幻灯片转换为图像格式
Apache POI HSLF API 使软件开发人员能够在其 Java 应用程序中将 PowerPoint 演示文稿的每张幻灯片转换为图像文件格式。您可以将幻灯片捕获到 java.awt.Graphics2D 对象(或任何其他对象)中,并将其序列化为 PNG 或 JPEG 格式。支持的图像可以是 JPEG、PNG、DIB 等格式。
将 PPT 转换为图像 - Java
//open an existing PPT file
HSLFSlideShow hslfSlideShow = new HSLFSlideShow(new FileInputStream(new File("PPTtoImage.ppt")));
// get dimensions
Dimension pgsize = hslfSlideShow.getPageSize();
java.util.List slide = hslfSlideShow.getSlides();
for (int i = 0; i < slide.size(); i++) {
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
// clear the drawing area
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
// render
slide.get(i).draw(graphics);
// create image
FileOutputStream out = new FileOutputStream("PPTtoImage.png");
javax.imageio.ImageIO.write(img, "png", out);
out.close();
}