首页 > 编程语言 >如何通过Java代码在PDF中插入、替换或删除图像?

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

时间:2023-01-05 16:34:33浏览次数:68  
标签:Java PdfDocument 图像 spire 插入 文档 pdf 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程序:

如何通过Java代码在PDF中插入、替换或删除图像?_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);
}
}

效果图

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

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

效果图

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

删除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_04

—本文完—

标签:Java,PdfDocument,图像,spire,插入,文档,pdf,PDF
From: https://blog.51cto.com/u_15656056/5991433

相关文章

  • 无语!Jenkins 也宣布弃用 Java 8
    继Java之父JamesGosling先前称,开发者应尽快弃用JDK8,可以选择JDK17LTS,因为后者在各个方面都带来了巨大的改进。开源Devops工具Jenkins宣布:从6月28日发布的......
  • Java中的List、Set、Map
         本文主要介绍java中list,set和map的区别。<!--Error-->List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部......
  • Java Annotation-注解
    Java注解(Annotation)是JDK5.0引入的一种注释机制。Java语言中的类、方法、变量、参数和包等都可以被注解。和Javadoc不同,Java注解可以通过反射获取标注内容。在编译器生成......
  • JavaScript之正则表达式
    JavaScript之正则表达式search()方法&replace()1<!DOCTYPEhtml>2<html>3<head>4<metacharset="utf-8">5<title>JavaScript正则表......
  • JavaScript事件触发列表与解说
    一般事件事件浏览器支持描述onClickHTML:2|3|3.2|4Browser:IE3|N2|O3鼠标点击事件,多用在某个对象控制的范围内的鼠标点击onDblClickHTML:2|3|3.2|4Browser:IE4|N4|O鼠标......
  • Java简单仿制在创建同名目录时名称拼接(数字)
    /***创建同名文件名称拼接(数字)**@parampath需要创建的目录*@return*/publicstaticStringrecursionMkdirsFile(Stringpat......
  • Android Studio 生成JavaDoc
    菜单位置配置GenerateJavaDocScope(生成文档的作用范围),可根据自己需求自行配置。导包若报错找不到android的某些包,可添加如下依赖(可能是由于JavaDoc没有导入An......
  • java读取虚拟串口数据
    语言:java虚拟串口工具:VirtualSerialPortDriverPro9.0,选择pairing模块下,点击addvirtualparing按钮即可创建串口对,还无法自定义out和in。串口助手:xcom2.6,在串口选择......
  • 直播app源码,Java的输入输出
    直播app源码,Java的输入输出第一种输入方法:scanner importjava.util.Scanner;//导入java.util.ScannerpublicclassUser{  publicstaticvoidmain(String[]......
  • idea为java程序添加启动参数(program arguments,vm arguments,Environment variable)
    programarguments作用programarguments 中的值作为args[]的参数传入应用程序,书写格式参数1参数2参数3注意:参数之间要以空格分隔,如果参数值中间有空格,则用引号......