写点什么

如何通过 Java 代码在 PDF 中插入、替换或删除图像?

作者:在下毛毛雨
  • 2023-01-19
    美国
  • 本文字数:2175 字

    阅读完需:约 7 分钟

图文并茂的内容往往让人看起来更加舒服,如果只是文字内容的累加,往往会使读者产生视觉疲劳。搭配精美的文章配图则会使文章内容更加丰富,增加文章可读性的同时,也能提升用户体验。但由于 PDF 安全性较高,不易对其进行修改编辑,那我们要如何在 PDF 中插入、替换或删除图像呢?别担心,今天为大家介绍一种高效便捷的方法。我们可以通过编程的方式来实现此操作。

  • 将图像插入 PDF 文档

  • 替换 PDF 文档中的图像

  • 删除 PDF 文档中的指定图像

代码编译环境:

IntelliJIDEA 2018(jdk 1.8.0)

PDFJar 包:Free Spire.PDF for Java 5.1.0

1.引入 jar 包

导入方法 1:

手动引入。将 Free Spire.PDF for Java 下载到本地,解压,找到 lib 文件夹下的 Spire.PDF.jar 文件。在 IDEA 中打开如下界面,将本地路径中的 jar 文件引入 Java 程序:

导入方法 2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。

<repositories>        <repository>            <id>com.e-iceblue</id>            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>        </repository>    </repositories><dependencies>    <dependency>        <groupId>e-iceblue</groupId>        <artifactId>spire.pdf.free</artifactId>        <version>5.1.0</version>    </dependency></dependencies>
复制代码

将图像插入 PDF 文档

  • 初始化 PdfDocument 类的实例。

  • 使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。

  • 使用 PdfDocument.getPages().get() 方法在 PDF 文档中获取所需的页面。

  • 使用 PdfImage.fromFile() 方法加载图像。

  • 指定页面上图像区域的宽度和高度。

  • 指定 X 和 Y 坐标以开始绘制图像。

  • 使用 PdfPageBase.getCanvas().drawImage() 方法在页面上绘制图像。

  • 使用 PdfDocument.saveToFile() 方法保存结果文档。

完整代码

Java

import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import com.spire.pdf.graphics.*;
public class AddImage { public static void main(String []args){ //初始化 PdfDocument 类的实例 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("阿拉斯加犬.pdf");
//获取所需的页面 PdfPageBase page = pdf.getPages().get(0);
//加载图像 PdfImage image = PdfImage.fromFile("图片1.jpg");
//指定页面上图像区域的宽度和高度 float width = image.getWidth() * 0.30f; float height = image.getHeight() * 0.30f;
//指定 X 和 Y 坐标以开始绘制图像 float x = 130f; float y = 240f;
//在页面指定位置上绘制图像 page.getCanvas().drawImage(image, x, y, width, height);
//保存结果文档 pdf.saveToFile("插入图片.pdf", FileFormat.PDF); }}
复制代码

效果图

替换 PDF 文档中的图像

以下是替换 PDF 文档图像的具体步骤:

  • 初始化 PdfDocument 类的实例。

  • 使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。

  • 使用 PdfDocument.getPages().get() 方法在 PDF 文档中获取所需的页面。

  • 使用 PdfImage.fromFile() 方法加载图像。

  • 使用 PdfPageBase.replaceImage() 方法将页面上的特定图像替换为加载的图像。

  • 使用 PdfDocument.saveToFile() 方法保存结果文档。

完整代码

Java

import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import com.spire.pdf.graphics.PdfImage;
public class ReplaceImage { public static void main(String []args){ //初始化 PdfDocument 类的实例 PdfDocument doc = new PdfDocument(); //加载 PDF 文档 doc.loadFromFile("插入图片.pdf");
//获取所需的页面 PdfPageBase page = doc.getPages().get(0);
//加载图像 PdfImage image = PdfImage.fromFile("图片2.jpg");
//将页面上的指定图像替换为加载的图像 page.replaceImage(0, image);
//保存结果文档 doc.saveToFile("替换图片.pdf", FileFormat.PDF); }}
复制代码

效果图

删除 PDF 文档中的指定图像

以下是从 PDF 文档中删除图像的具体步骤:

  • 初始化 PdfDocument 类的实例。

  • 使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。

  • 使用 PdfDocument.getPages().get() 方法在 PDF 文档中获取所需的页面。

  • 使用 PdfPageBase.deleteImage() 方法删除页面上的特定图像。

  • 使用 PdfDocument.saveToFile() 方法保存结果文档。

完整代码

Java

import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;
public class DeleteImage { public static void main(String []args){ //初始化 PdfDocument 类的实例 PdfDocument pdf = new PdfDocument(); //加载 PDF 文档 pdf.loadFromFile("插入图片.pdf");
//获取所需的页面 PdfPageBase page = pdf.getPages().get(0);
//删除页面上的指定图像 page.deleteImage(0);
//保存结果文档 pdf.saveToFile("删除图片.pdf", FileFormat.PDF); }}
复制代码

效果图

—本文完—

发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2022-06-02 加入

还未添加个人简介

评论

发布
暂无评论
如何通过Java代码在PDF中插入、替换或删除图像?_Java_在下毛毛雨_InfoQ写作社区