图文并茂的内容往往让人看起来更加舒服,如果只是文字内容的累加,往往会使读者产生视觉疲劳。搭配精美的文章配图则会使文章内容更加丰富,增加文章可读性的同时,也能提升用户体验。但由于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);
}
}

效果图

—本文完—

最新文章

  1. js构建ui的统一异常处理方案(二)
  2. Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )
  3. Ubuntu PostgreSQL安装和配置
  4. jQueryEasyUi验证
  5. 处理字符串中的换行,将textarea中的带有换行的字符串变为逗号分隔的写法
  6. ListView中item的最外层使用margin属性失效
  7. 整理string类常见方法的使用说明
  8. posix thread互斥量
  9. poj 2503 字符串hash
  10. 使用XRDP实现Windows远程桌面Linux系统
  11. http://www.cutt.com/
  12. Linux Ubuntu 虛擬機系統自定義桌面分辨率且重啓後保持不變
  13. jenkins 杀死衍生进程
  14. SQL Server Alwayson概念总结
  15. C#的常见算法(面试)
  16. [模板] 虚树 &amp;&amp; bzoj2286-[Sdoi2011]消耗战
  17. Elasticsearch拼音和ik分词器的结合应用
  18. 【LeetCode每天一题】Longest Palindromic Substring(最长回文字串)
  19. redis集群报错:(error) MOVED 11469 192.168.163.249:7002
  20. laravel 懒加载

热门文章

  1. 10.MongoDB系列之副本集组成
  2. 基于.NetCore开发博客项目 StarBlog - (19) Markdown渲染方案探索
  3. Unreal NetMode&amp;NetRole 解析
  4. 华为开发者大会HDC2022:HMS Core 持续创新,与开发者共创美好数智生活
  5. 【转】Linux文件权限
  6. mybatis-plus分页失效原因
  7. mindxdl---common---db_handler.go
  8. Go语言核心36讲48
  9. ENS框架下一次控制灯的调试记录
  10. Objects.requireNonNull的意义是什么