Java添加、提取、替换和删除PDF图片
(一)简介
这篇文章将介绍在Java中添加、提取、删除和替换PDF文档中的图片。
工具使用:
- Free Spire.PDF for JAVA 2.4.4(免费版)
- Intellij IDEA
Jar包导入:
方式一:首先,从官网获取Free Spire.PDF for Java之后解压,以下是三种在IDEA中快速打开Project Structure界面的方式;如下图:
然后:① 选择“Modules”—“Dependencies”,添加外置jar包;② 进入"Attach File or Directories"界面选择jar文件路径,然后点击“OK”;③ 勾选jar路径选项,点击”OK”/”Apply”;④ 导入完成。如下图:
- 方式二:使用Maven配置导包。可以参考官方帮助文档。
主要参考使用的源文档截图:
(二)JAVA 代码示例
1. 给PDF添加图片
import com.spire.pdf.*; import com.spire.pdf.graphics.*; public class drawImage { public static void main(String[] args) { //创建PDF实例 PdfDocument doc = new PdfDocument(); //加载PDF源文件 doc.loadFromFile("data/Sample.pdf"); //获取文档的第一页 PdfPageBase page = doc.getPages().); drawImageMethod(page); //保存PDF文件 doc.saveToFile("output/drawImage.pdf"); doc.close(); } private static void drawImageMethod(PdfPageBase page) { //添加图片 PdfImage image = PdfImage.fromFile("data/1.png"); float width = image.getWidth() * 0.3f; float height = image.getHeight() * 0.3f; //放置图片的绝对位置 page.getCanvas().drawImage(image, ,, width, height); } }
结果:
2. 提取PDF中图片
import com.spire.pdf.*; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; public class extraction { public static void main(String[] args) throws Exception{ //创建PDF实例 PdfDocument pdf = new PdfDocument(); //加载PDF源文件 pdf.loadFromFile("data/Sample.pdf"); ; //遍历PDF每一页 ;i< pdf.getPages().getCount(); i ++){ //获取PDF页面 PdfPageBase page = pdf.getPages().get(i); for (BufferedImage image : page.extractImages()) { File output = new File("output/" + String.format("Image_%d.png", index++)); //将图片保存为PNG格式文件 ImageIO.write(image, "PNG", output); } } } }
结果:
3. 替换PDF中图片
import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import com.spire.pdf.graphics.PdfImage; import java.io.IOException; public class ReplaceImage { public static void main(String[] args) throws IOException { //创建一个PDF实例 PdfDocument pdf = new PdfDocument(); //加载PDF文档 pdf.loadFromFile("data/Sample.pdf"); //获取第一页 PdfPageBase page = pdf.getPages().); //加载一张图片 PdfImage image = PdfImage.fromFile("data/1.png"); //使用加载的图片替换第一页上的第一张图片 page.replaceImage(, image); //保存文档 pdf.saveToFile("替换图片.pdf"); } }
结果:
4. 删除PDF中图片
import com.spire.pdf.*; public class deleteImage { public static void main(String[] args) { //创建PDF实例 PdfDocument doc = new PdfDocument(); //加载PDF源文档 doc.loadFromFile("data/Sample.pdf"); //获取文档的第一页 PdfPageBase page = doc.getPages().); //删除第一页的第一张图 page.deleteImage(); //保存文档 doc.saveToFile("output/deleteImage.pdf"); doc.close(); } }
结果:
P.S. 另外关于PDF中图片的操作还有:为PDF添加图片水印。
(本文完)
Java添加、提取、替换和删除PDF图片的更多相关文章
- Java 添加、替换、删除PDF中的图片
概述 本文介绍通过java程序向PDF文档添加图片,以及替换和删除PDF中已有的图片.另外,关于图片的操作还可参考设置PDF 图片背景.设置PDF图片水印.读取PDF中的图片.将PDF保存为图片等文章 ...
- JAVA 添加、修改和删除PDF书签
当阅读篇幅较长的PDF文档时,为方便我们再次阅读时快速定位到上一次的阅读位置,可以插入一个书签进行标记:此外,对于文档中已有的书签,我们也可以根据需要进行修改或者删除等操作.本篇文章将通过Java编程 ...
- Java 添加、读取、删除Excel图片
本文介绍在Java程序中如何添加图片到excel表格,添加图片时可设置图片大小.位置.旋转.超链接.可选文本等,以及如何读取.删除excel表格中已有的图片. 工具:Free Spire.XLS fo ...
- C# 添加、修改和删除PDF书签
C# 添加.修改和删除PDF书签 有时候我们在阅读PDF文档时会遇到这样一种情况:PDF文档页数比较多,但是又没有书签,所以我们不能根据书签快速了解文档所讲解的内容,也不能点击书签快速跳转到相应的位置 ...
- C# 添加、获取及删除PDF附件
C# 添加.获取及删除PDF附件 前言 附件在PDF文档中很常见,这些附件可以是PDF或其他类型的文件.在PDF中,附件有两种存在方式,一种是普通的文件附件(document-level file a ...
- Java 添加、读取和删除 Excel 批注
批注是一种富文本注释,常用于为指定的Excel单元格添加提示或附加信息. Free Spire.XLS for Java 为开发人员免费提供了在Java应用程序中对Excel文件添加和操作批注的功能. ...
- Java 添加、下载、读取PDF附件信息(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了PdfAttachmentsApi接口添加附件addAttachment().下载附件downloadAttachment().获取附件信息get ...
- Java 添加 、读取以及删除PPT幻灯片中的视频、音频文件
在PPT中,可以操作很多种元素,如形状.图形.文字.图片.表格等,也可以插入视频或者音频文件,来丰富幻灯片的内容呈现方式.下面将介绍在Java程序中如何来添加视频.音频文件到PPT幻灯片,读取和删除幻 ...
- 创建PDF模板,java添加内容、导出下载PDF
本文主要内容是:用java在pdf模板中加入数据,图片. 废话不多说,举个非常简单的例子: 首先创建word文档,导出PDF. 用 软件adobe acrobat打开,操作步骤如图: 在指定位置添加文 ...
随机推荐
- 初探ABP--记一些常见的开发问题
1.Update-Database : 无法将“Update-Database”项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. ...
- 在一台电脑上运行两个或多个tomcat
在一台电脑上运行多个tomcat 在本例中,使用两个tomcat做示例 工具/原料 tomcat 安装好jdk,并且配置好环境变量 方法/步骤 首先去apache下载一个tomcat, ...
- x86和i386
x86: 1 9 7 8年6月,I n t e l公司推出了8 0 8 6,一个1 6位微处理器,它可访问的存储空间达到1 M B. Intel x86家族继续发展,1 9 8 5年出现了3 2位的3 ...
- SAP CRM和Cloud for Customer中的Event handler(事件处理器)
SAP CRM可以在开发工具中用右键直接创建一个新的事件处理器: 这些事件处理器实际上就是UI控制器(Controller)上具有特定接口类型的方法. C4C UI的event handler 在C4 ...
- 1.3 jieba中文处理+安装
第一次接触这个工具,是在研一上学期的一门课里.由于要做课程设计论文,我当时选择做中文分词处理,自然而然就接触到这个工具了. 但是呢,由于研究生研究方向与NLP无关,也就没有深入的研究过. 现在由于工作 ...
- Vue构建命令
node -v npm -v vue -V npm install vue (这个命令不行) 提示信息:+ vue@2.6.10 updated 1 package and audited 1 pac ...
- HTTP隧道代理
reGeorg的前身是2008年SensePost在BlackHat USA 2008 的 reDuh延伸与扩展.也是目 前安全从业人员使用最多,范围最广,支持多丰富的一款http隧道.从本质上讲,可 ...
- 自己封装一个readline函数实现服务器客户端回射
实现的功能:一次只能读取一行,客户端输入之后,一回车,马上字符串传到服务器端并显示在终端,然后服务器端将字符串又传回给客户端. 服务器端可以接收多个客户端的连接请求,并fork一个子进程来进行服务. ...
- 利用CWinThread实现跨线程父子MFC窗口
利用CWinThread实现跨线程父子MFC窗口 MFC对象只能由创建该对象的线程访问,而不能由其他线程访问. 不遵守该准则将导致断言(assertion)或者无法预知的程序行为等运行期错误. 在多线 ...
- PHP22 PHP在线支付
易宝支付示例脚本 参考网址:https://blog.csdn.net/yerenyuan_pku/article/details/52239862 参数说明 p1_MerId:商户编号,网站在易宝上 ...