详解Java如何实现在PDF中插入,替换或删除图像

作者:Carina-baby 时间:2022-04-07 22:40:36 

前言

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

  • 将图像插入PDF文档

  • 替换PDF文档中的图像

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

代码编译环境:

IntelliJ IDEA 2018(jdk 1.8.0)

PDF Jar包:Free Spire.PDF for Java 5.1.01.引入jar包

导入方法1:

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

详解Java如何实现在PDF中插入,替换或删除图像

导入方法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() 方法保存结果文档。

完整代码

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);
   }
}

效果图

详解Java如何实现在PDF中插入,替换或删除图像

替换PDF文档中的图像

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

  • 初始化 PdfDocument 类的实例。

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

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

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

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

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

完整代码

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);
   }
}

效果图

详解Java如何实现在PDF中插入,替换或删除图像

删除PDF文档中的指定图像

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

  • 初始化 PdfDocument 类的实例。

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

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

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

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

完整代码

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);
   }
}

效果图

详解Java如何实现在PDF中插入,替换或删除图像

来源:https://www.cnblogs.com/Carina-baby/p/17044041.html

标签:Java,PDF,图像
0
投稿

猜你喜欢

  • mybatis 查询返回Map<String,Object>类型

    2023-11-14 07:06:09
  • SpringBoot整合Zookeeper详细教程

    2022-07-24 11:33:09
  • java通过PDF模板填写PDF表单

    2022-05-28 16:37:48
  • Java SpringBoot实现带界面的代码生成器详解

    2023-09-28 11:54:14
  • 详解JAVA类加载机制

    2023-11-08 04:05:16
  • Spring MVC 简单的hello world的实现

    2023-06-18 02:56:41
  • 基于Flutter实现图片选择和图片上传

    2023-07-06 04:28:50
  • Java实现图形界面计算器

    2023-06-05 11:53:23
  • Android WebView基础应用详解

    2023-09-30 07:36:46
  • 使用java生成字母验证码

    2021-10-29 23:50:25
  • C#设计模式之职责链模式示例详解

    2023-11-08 05:26:38
  • Java面向接口编程之简单工厂模式示例

    2021-07-14 21:40:27
  • C++实现LeetCode(2.两个数字相加)

    2023-06-23 16:51:11
  • Spring自动装配之方法、构造器位置的自动注入操作

    2021-11-30 23:28:40
  • java中struts2实现文件上传下载功能实例解析

    2022-03-31 06:47:38
  • 使用Spring自定义实现IOC和依赖注入(注解方式)

    2023-09-16 04:42:35
  • Java操作excel的三种常见方法实例

    2022-12-11 02:29:55
  • swagger中如何给请求添加header

    2023-05-15 14:27:52
  • C#端口转发用法详解

    2022-09-05 08:47:08
  • java文件操作输入输出结构详解

    2023-07-30 21:48:30
  • asp之家 软件编程 m.aspxhome.com