1. 产品
  2.   介绍
  3.   Java
  4.   Apache POI HSLF

Apache POI HSLF

 
 

适用于 Microsoft® PPT 演示文件格式的 Java 库

将幻灯片和图像添加到演示文稿中,使用开源免费 Java API 转换 PPT 文件。

什么是 Apache POI HSLF?

Apache POI HSLF 是用于读取、创建、修改或呈现 PowerPoint 演示文稿的纯 Java 实现。它提供了一种阅读、创建或修改 PowerPoint 演示文稿 PPT 文件格式的方法。它支持从 PowerPoint 演示文稿中提取文本、图像、声音、嵌入对象等数据。

它还支持在幻灯片上绘制形状、添加超链接、表格、图像、自定义页眉和页脚、创建项目符号列表、检索嵌入的声音等等。

Previous Next

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 中插入图像

  1. 使用 FileOutputStream 创建一个新的 PPT 文件,并将输出文件名作为字符串传递 new File() 的实例
  2. 使用 HSLFSlideShow() 方法添加新幻灯片
  3. 使用 createSlide() 方法添加新幻灯片
  4. 使用 IOUtils.toByteArray() 方法获取图像字节,并通过 FileInputStream() 方法将图像传入其中
  5. 使用 hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG) 方法将图像添加到幻灯片。该方法接受图片字节和图片类型作为参数
  6. 写入并保存文件

在 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();
}
 中国人