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

—本文完—
如何通过Java代码在PDF中插入、替换或删除图像?的更多相关文章
- java 如何在pdf中生成表格
1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...
- 一行Java代码实现游戏中交换装备
摘要:JDK 1.5 开始 JUC 包下提供的 Exchanger 类可用于两个线程之间交换信息. 本文分享自华为云社区<一行Java代码实现两玩家交换装备[并发编程]>,作者:陈皮的Ja ...
- 170120、java 如何在pdf中生成表格
1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...
- MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据
前两篇教程我们介绍了如何搭建MongoDB的本地环境: MongoDB最简单的入门教程之一 环境搭建 以及如何用nodejs读取MongoDB里的记录: MongoDB最简单的入门教程之二 使用nod ...
- [改善Java代码]减少HashMap中元素的数量
在系统开发中我们经常会使用HashMap作为数据集容器,或者是用缓冲池来处理,一般很稳定,但偶尔也会出现内存溢出的问题(OutOfMemory错误),而且这经常是与HashMap有关的.而且这经常是与 ...
- 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】
iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...
- java向oracle数据库中插入当前时间
public class Test{public static void main (String args []){ java.util.Date a = new java.util.Date(); ...
- [改善Java代码]在接口中不要存在实现代码
第3章 类.对象及方法 书读得多而不思考,你会觉得自己知道的很多. 书读得多而思考,你会觉得自己不懂的越来越多. —伏尔泰 在面向对象编程(Object-Oriented Programming,O ...
- 通过纯Java代码从excle中读取数据(为.xlsx文件)
参考链接: 程序代码: package demo; import java.io.File; import java.io.IOException; import java.io.InputStrea ...
- Java项目往数据库中插入数据,出现中文乱码
项目环境: JSP+Servlet+Mysql数据库 需要检查的地方: 1. java项目整体的编码格式为utf-8.并且将数据传递给数据库之前,数据是否依旧是正常的(可以通过打断点的方式一步步跟踪查 ...
随机推荐
- Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作
最近 PostgreSQL 15 版本正式发布了,新版本的各种特性和好处本文就不展开介绍了,主要介绍一下 Windows 环境下 PostgreSQL 大版本升级的方法,我们现在的几个数据库都是运行在 ...
- JVM、JDK、JRE你分的清吗
JVM.JDK.JRE你分的清吗 前言 在我们学习Java的时候,就经常听到"需要安装JDK"."运行需要JRE"."JVM调优"等等,这里 ...
- 齐博x1客服系统显示客户在哪个页面
如下图所示,要想实现下面的效果,即显示客户给你发消息时,当时处于哪个商品页面.这样方便跟客户针对此商品进行交流. 你的模板如果使用了碎片的话,就可以添加下面的代码index_style/default ...
- OpenStack云计算平台框架
概: OpenStack是包含很多独立组件的一个云计算平台框架.在安装组件前,需要先将框架搭建出来,才能向其中放置组件. 搭建open stack云计算平台框架 一.安装open stack云计算平 ...
- python3使用mutagen进行音频元数据处理
python版本:python 3.9 mutagen版本:1.46.0 mutagen是一个处理音频元数据的python模块,支持多种音频格式,是一个纯粹的python库,仅依赖python标准 ...
- 学习笔记之——C语言 函数
采用函数的原因: 随着程序规模的变大,产生了以下问题: --main函数变得相当冗杂 --程序复杂度不断提高 --代码前后关联度提高,修改代码往往牵一发而动全身 --变量使用过多,命名都成了问题 -- ...
- 构建LNP镜像
1.构建ubuntu-base环境 #10.0.0.28: [root@rocky8 ubuntu_base]#vim Dockerfile FROM ubuntu:20.04 LABEL m ...
- 编译安装PHP7.4
1.下载PHP源码包 wget https://www.php.net/distributions/php-7.4.30.tar.gz 2.解压缩 tar xf php-7.4.30.tar.gz - ...
- String常用API
String常用API 1. 获取字符串长度 int length = str.length(); 2. 根据索引,返回字符串中对应的字符 char c = str.chaeAt(length-1); ...
- 优秀的Kafka GUI客户端、可视化管理工具、监控工具
想要查看Topic里的消息却找不到软件,想要查看或更新Broker.Topic配置,想要监控Broker服务器状态?试试下面的Kafka GUI工具--Kafka Assistant 官网地址:htt ...