使用 Java 处理 PDF 图像

图像广泛用于 PDF 文件中的不同类型的描述和演示。在本文中,您将学习如何以编程方式处理 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 文件中添加图像的步骤。

以下代码示例展示了如何在 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 文档中提取图像的步骤。

以下代码示例展示了如何使用 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 文件中删除图像的步骤。

以下代码示例展示了如何使用 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 文件中的图像的步骤。

以下代码示例展示了如何使用 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 的其他功能。如有任何疑问,您可以通过我们的 论坛 联系我们。

也可以看看