在 Java 中生成 PPTX 缩略图

缩略图 是较大图像的小尺寸版本,可以更轻松地查看或滚动图像列表。 MS PowerPoint 还使用演示文稿的缩略图来浏览内容并导航到特定幻灯片。在本文中,您将学习如何使用 Java 生成 PowerPoint PPTX 或 PPT 的缩略图。您可以在创建 Web 或基于桌面的 PowerPoint 查看器等场景中使用此功能。

用于为 PowerPoint PPTX/PPT 生成缩略图的 Java API

要为 PPTX 或 PPT 演示文稿生成缩略图,我们将使用 Aspose.Slides for Java。它是一个功能丰富的 API,用于创建、操作和转换 PowerPoint 和 OpenOffice 演示文稿。您可以 下载 API 或使用以下 Maven 配置安装它。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-slides</artifactId>
    <version>21.8</version>
    <classifier>jdk16</classifier>
</dependency>

使用 Java 为 PPTX 或 PPT 生成缩略图

以下是使用 Java 生成 PPTX 演示文稿缩略图的步骤。

  1. 首先,创建一个 Presentation 类的实例来加载演示文稿。
  2. 遍历 Presentation.getSlides() 集合中的每个 ISlide
  3. 使用 ISlide.getThumbnail(1f, 1f) 方法生成每张幻灯片的图像,并将图像的引用获取到 BufferedImage 对象中。
  4. 为输出图像创建一个新的 File
  5. 最后,使用 ImageIO.write(BufferedImage, String, File) 方法保存图像。

以下代码示例展示了如何使用 Java 生成 PPTX 演示文稿的缩略图。

// 加载 PowerPoint 演示文稿
Presentation presentation = new Presentation("presentation.pptx");

// 遍历演示文稿中的幻灯片
for (ISlide sld : presentation.getSlides()) {
  
	// 创建幻灯片的全尺寸图像
	BufferedImage bi = sld.getThumbnail(1f, 1f);

	// 创建一个新文件来保存图像
	File outputfile = new File("Slide_" + sld.getSlideNumber() + ".png");

	// 保存图片
	ImageIO.write(bi, "png", outputfile);
}

生成具有用户定义尺寸的缩略图

您还可以使用幻灯片的高度和宽度为缩略图指定自己的尺寸。以下是执行此操作的步骤。

  1. 首先,创建一个 Presentation 类的实例来加载演示文稿。
  2. 定义生成的 PNG 图像的尺寸。
  3. 循环遍历 Presentation.getSlides() 集合中的每个 ISlide
  4. 使用 ISlide.getThumbnail(float ScaleX, float ScaleY) 方法生成每张幻灯片的图像,并将图像的引用获取到 BufferedImage 对象中。
  5. 为输出图像创建一个新的 File
  6. 最后,使用 ImageIO.write(BufferedImage, String, File) 方法保存图像。

以下代码示例显示了如何生成具有自定义尺寸的 PPTX 缩略图。

// 加载 PowerPoint 演示文稿
Presentation presentation = new Presentation("presentation.pptx");

// 用户定义维度
int desiredX = 1200;
int desiredY = 800;

// 获取 X 和 Y 的缩放值
float ScaleX = (float) (1.0 / presentation.getSlideSize().getSize().getWidth()) * desiredX;
float ScaleY = (float) (1.0 / presentation.getSlideSize().getSize().getHeight()) * desiredY;

// 遍历演示文稿中的幻灯片
for (ISlide sld : presentation.getSlides()) {
  
	// 创建幻灯片的全尺寸图像
	BufferedImage bi = sld.getThumbnail(ScaleX, ScaleY);

	// 创建一个新文件来保存图像
	File outputfile = new File("Slide_" + sld.getSlideNumber() + ".png");

	// 保存图片
	ImageIO.write(bi, "png", outputfile);
}

获取免费 API 许可证

您可以通过请求 临时许可 来使用 Aspose.Slides for Java,而不受评估限制。

结论

在本文中,您学习了如何使用 Java 生成 PowerPoint PPTX 或 PPT 的缩略图。此外,您还了解了如何生成具有用户定义尺寸的缩略图。此外,您可以访问 文档 来探索 API 的其他功能。此外,您可以随时通过我们的 论坛 告诉我们您的疑问。

也可以看看