图像广泛用于 PDF 文件中的不同类型的描述和演示。在本文中,您将学习如何以编程方式处理 PDF 文件中的图像。特别是,本文将介绍如何使用 Java 在 PDF 文件中添加、提取、删除或替换图像。
- 用于在 PDF 中添加和操作图像的 Java API
- 使用 Java 在 PDF 中添加图像
- 使用 Java 从 PDF 中提取图像
- 使用 Java 从 PDF 中删除图像
- 使用 Java 替换 PDF 中的图像
- 获得免费许可证
用于在 PDF 中添加和操作图像的 Java API - 免费下载
Aspose.PDF for Java 是一个强大的 API,它为您提供了广泛的 PDF 操作功能。 API 让您可以无缝地处理 PDF 文件中的文本、注释或图像。您可以下载 API 的 JAR 或使用以下 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>21.2</version>
</dependency>
在 Java 中将图像添加到 PDF 文件
以下是使用 Java 在 PDF 文件中添加图像的步骤。
- 首先,创建一个 Document 类的实例来加载 PDF 文档。
- 使用 Document.getPages().getItem(int) 方法获取要添加图像的 Page。
- 将图像文件加载到 FileInputStream 对象中。
- 使用 Page.getResources().getImages().add(FileInputStream) 方法将图像添加到页面的资源中。
- 使用运算符将图像放置在页面上:
- GSave 操作符保存当前图形状态。
- ConcatenateMatrix 运算符指定图像的放置位置。
- Do 运算符在页面上绘制图像。
- GRestore 操作符保存更新的图形状态。
- 最后,使用 Document.save(string) 方法保存更新的 PDF 文件。
以下代码示例展示了如何在 Java 中将图像添加到 PDF 文件。
// 打开文档
Document pdfDocument1 = new Document("input.pdf");
// 设置坐标
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;
// 获取要添加图片的页面
Page page = pdfDocument1.getPages().get_Item(1);
// 将图像加载到流中
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));
// 将图像添加到页面资源的图像集合中
page.getResources().getImages().add(imageStream);
// 使用 GSave 运算符:此运算符保存当前图形状态
page.getContents().add(new Operator.GSave());
// 创建矩形和矩阵对象
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });
// 使用 ConcatenateMatrix(连接矩阵)运算符:定义图像必须如何放置
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());
// 使用 Do 运算符:此运算符绘制图像
page.getContents().add(new Operator.Do(ximage.getName()));
// 使用 GRestore 运算符:此运算符恢复图形状态
page.getContents().add(new Operator.GRestore());
// 保存新的 PDF
pdfDocument1.save("Updated_document.pdf");
// 关闭图像流
imageStream.close();
使用 Java 从 PDF 文件中提取图像
以下是使用 Java 从 PDF 文档中提取图像的步骤。
- 创建 Document 类的实例以加载 PDF 文档。
- 使用 Document.getPages().getItem(int).getResources().getImages().getItem(int) 方法将所需图像提取到 XImage 对象中。
- 您还可以遍历图像集合以提取和保存所有图像。
- 最后,使用 OutputStream 将提取的图像保存为文件。
以下代码示例展示了如何使用 Java 从 PDF 文件中提取图像。
// 打开文档
Document pdfDocument = new Document("input.pdf");
// 提取特定图像
XImage xImage = pdfDocument.getPages().get_Item(1).getResources().getImages().get_Item(1);
// 创建流对象以保存输出图像
java.io.OutputStream output = new java.io.FileOutputStream("output.jpg");
// 保存输出图像
xImage.save(output);
// 关闭流
output.close();
使用 Java 从 PDF 文件中删除图像
以下是使用 Java 从 PDF 文件中删除图像的步骤。
- 将 PDF 文件加载到 Document 对象中。
- 使用以下方法之一删除所需的图像。
- 最后,使用 Document.save(string) 方法保存更新的 PDF 文件。
以下代码示例展示了如何使用 Java 删除 PDF 中的图像。
// 打开文档
Document pdfDocument = new Document("input.pdf");
// 删除特定图像
pdfDocument.getPages().get_Item(1).getResources().getImages().delete(1);
// 保存更新的 PDF 文件
pdfDocument.save("output.pdf");
使用 Java 替换 PDF 文件中的图像
以下是使用 Java 替换 PDF 文件中的图像的步骤。
- 将 PDF 文件加载到 Document 对象中。
- 将新图像加载到 FileInputStream 对象中。
- 使用 Document.getPages().getItem(int).getResources().getImages().replace(int, FileInputStream) 方法通过指定索引来替换图像。
- 最后,使用 Document.save(string) 方法保存更新的 PDF 文件。
以下代码示例展示了如何使用 Java 替换 PDF 中的图像。
// 打开文档
Document pdfDocument = new Document("input.pdf");
// 替换特定图像
pdfDocument.getPages().get_Item(1).getResources().getImages().replace(1, new java.io.FileInputStream(new java.io.File("apose.png")));
// 保存更新的 PDF 文件
pdfDocument.save("output.pdf");
用于在 PDF 中添加图像的 Java API - 获取免费 API 许可证
您可以通过 获得临时许可证 免费试用 Aspose.PDF for Java。
结论
在本文中,您学习了如何使用 Java 操作 PDF 文件中的图像。分步指南和代码示例展示了如何提取、添加、删除和替换 PDF 文件中的图像。您可以使用 documentation 探索 Aspose.PDF for Java 的其他功能。如有任何疑问,您可以通过我们的 论坛 联系我们。