在将 PDF 文档嵌入 Web 应用程序时,您可能需要生成缩略图。在其他情况下,例如创建 PDF 查看器,您可能需要为 PDF 中的每个页面创建缩略图。在本文中,我们将向您展示如何在 Java 中生成 PDF 页面的缩略图。我们将明确介绍如何创建特定页面或 PDF 文件中所有页面的缩略图。
用于生成 PDF 缩略图的 Java API - 免费下载
为了生成 PDF 文件的缩略图,我们将使用 Aspose.PDF for Java。它是一个功能丰富的库,可让您创建和操作 PDF 文档。该 API 允许您无缝执行基本和高级 PDF 自动化操作。您可以 下载 API 或使用以下 Maven 配置安装它。
存储库:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
依赖:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>22.4</version>
</dependency>
用 Java 生成 PDF 的缩略图
通常,您必须为 PDF 文档生成单个缩略图。缩略图页面可以是封面或您选择的任何其他页面。以下是用 Java 生成 PDF 所需页面的缩略图的步骤。
- 使用 Document 类加载 PDF 文件。
- 从 Document.getPages() 集合中获取所需页面的引用。
- 为图像文件创建一个新的 FileOutputStream。
- 创建一个 Resolution 类的实例来设置缩略图的分辨率。
- 实例化 JpegDevice 并设置图像的高度、宽度、分辨率和质量。
- 使用 JpegDevice.process(Page, FileOutputStream) 方法生成缩略图。
- 关闭文件流。
以下代码示例展示了如何在 Java 中生成 PDF 文件的缩略图。
// 加载 PDF 文档
Document doc = new Document("input.pdf");
int pageIndex = 0;
// 获取页面
Page page = doc.getPages().get_Item(pageIndex);
// 为图像创建文件流
FileOutputStream imageStream = new FileOutputStream("Thumbnails_" + pageIndex + ".jpg");
// 创建分辨率对象
Resolution resolution = new Resolution(300);
// 创建一个 JpegDevice 实例并设置高度、宽度、分辨率和
// 图像质量
JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);
// 转换页面并将图像保存到流
jpegDevice.process(page, imageStream);
// 关闭流
try {
imageStream.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
Java 生成 PDF 中所有页面的缩略图
以下是用 Java 为所有 PDF 页面生成缩略图的步骤。
- 使用 Document 类加载 PDF 文件。
- 使用 Document.getPages() 集合循环浏览 PDF 中的所有页面。
- 在每次迭代中,执行以下操作:
- 为图像文件创建一个新的 FileOutputStream。
- 创建一个 Resolution 类的实例来设置缩略图的分辨率。
- 实例化 JpegDevice 并设置图像的高度、宽度、分辨率和质量。
- 使用 JpegDevice.process(Page, FileOutputStream) 方法生成缩略图。
- 关闭文件流。
以下代码示例显示了如何为 PDF 中的所有页面生成缩略图。
// 加载 PDF 文档
Document doc = new Document("input.pdf");
// 循环浏览页面
for (int pageCount = 0; pageCount < doc.getPages().size(); pageCount++) {
FileOutputStream imageStream = new FileOutputStream("Thumbnails_" + pageCount + ".jpg");
// 创建分辨率对象
Resolution resolution = new Resolution(300);
JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);
// 转换特定页面并将图像保存到流
jpegDevice.process(doc.getPages().get_Item(pageCount), imageStream);
// 关闭流
try {
imageStream.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
获得免费许可证
您可以获得免费的临时许可证 以便在没有评估限制的情况下使用 Aspose.PDF for Java。
结论
在本文中,您学习了如何在 Java 中为 PDF 文件生成缩略图。您已经了解了如何生成 PDF 文件中特定页面或所有页面的缩略图。此外,您可以使用 文档 探索更多关于 Java PDF API 的信息。如果您有任何问题或疑问,可以通过我们的 论坛 与我们联系。