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打开,操作步骤如图: 在指定位置添加文 ...
随机推荐
- C# 调用第三方DLL缓冲区溢出导致的异常
这个倒是少见的错误,纪录一下大佬. 先上异常 错误一:尝试读取或写入受保护的内存 错误二:未将对象引用设置到对象的实例 错误三: 托管调试助手“FatalExecutionEngineError”( ...
- 微信小程序开发系列四:微信小程序之控制器的初始化逻辑
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 这个教程的前两篇文章,介绍了如何 ...
- 学习Python的一些Tips
0. Python安装 官网提供多种方式,一般Windows下直接安装exe即可:Linux下基本上自带python:另外也提供源码,也可自行编译: 若安装后无法使用,则检查一下环境变量是否设置正确. ...
- 字符串翻转(java)
1 递归,二分 private static String reverse(String s) { int N = s.length(); if(N <= 1) return s; String ...
- python基础一 day3 列表
字符串是有序的,列表也是有序的,有索引值,可以切片 可以用切片来截取列表中的任何部分返回得到一个新列表. 列表方法: 1:增加 结果: 例子: 结果: int类型不可迭代 结果: 删: ...
- [BZOJ2120]:数颜色(分块?)
题目传送门 我感觉这种题没必要扯淡题目大意了,没啥用. 暴力过掉,擦了个边. 主要是讲一下这道题我用到的卡常. 首先,0,1标记我用的位运算,位运算符跑的要比正常的+,-,×,÷,true,false ...
- Eclipse 总是在编译的时候卡住
之前在开发Unieap项目的时候都是很正常,突然有一天早上总是出现Eclipse在编译的时候卡到34%的位置. 解决办法: 点击停止校验,一直卡在那里,首先在任务管理器杀死eclipse和javaw进 ...
- python数组中数据位置交换 -- IndexError: list assignment index out of range
代码: t = [-10,-3,-100,-1000,-239,1] # 交换 -10和1的位置 t[5], t[t[5]-1] = t[t[5]-1], t[5] 报错: IndexError: l ...
- 计算机网络之TCP拥塞控制
1. 首先,拥塞控制和流量控制是不一样的. 拥塞控制是防止过多的数据注入到网络中,可以使网络中的路由器或链路不致过载,是一个全局性的过程. 流量控制是点对点通信量的控制,是一个端到端的问题,主要就是 ...
- RAID磁盘阵列及CentOS7启动流程
1. 磁盘阵列 1.1 RAID,磁盘阵列磁盘通过硬件和软件的形式组合成一个容量巨大的磁盘组,提升整个磁盘的系统效能:RAID常见类型: RAID类型 最低磁盘个数 空间利用率 各自的优缺点 级别 说 ...