(一)简介

这篇文章将介绍在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”;④ 导入完成。如下图:

主要参考使用的源文档截图:

(二)JAVA 代码示例

1. 给PDF添加图片

  1. import com.spire.pdf.*;
  2. import com.spire.pdf.graphics.*;
  3.  
  4. public class drawImage {
  5. public static void main(String[] args) {
  6.      //创建PDF实例
  7. PdfDocument doc = new PdfDocument();
  8.      //加载PDF源文件
  9. doc.loadFromFile("data/Sample.pdf");
  10. //获取文档的第一页
  11. PdfPageBase page = doc.getPages().);
  12. drawImageMethod(page);
  13. //保存PDF文件
  14. doc.saveToFile("output/drawImage.pdf");
  15. doc.close();
  16. }
  17. private static void drawImageMethod(PdfPageBase page) {
  18. //添加图片
  19. PdfImage image = PdfImage.fromFile("data/1.png");
  20. float width = image.getWidth() * 0.3f;
  21. float height = image.getHeight() * 0.3f;
  22. //放置图片的绝对位置
  23. page.getCanvas().drawImage(image, ,, width, height);
  24. }
  25. }

结果:

2. 提取PDF中图片

  1. import com.spire.pdf.*;
  2. import javax.imageio.ImageIO;
  3. import java.awt.image.BufferedImage;
  4. import java.io.File;
  5.  
  6. public class extraction {
  7. public static void main(String[] args) throws Exception{
  8. //创建PDF实例
  9. PdfDocument pdf = new PdfDocument();
  10.      //加载PDF源文件
  11. pdf.loadFromFile("data/Sample.pdf");
  12. ;
  13. //遍历PDF每一页
  14. ;i< pdf.getPages().getCount(); i ++){
  15. //获取PDF页面
  16. PdfPageBase page = pdf.getPages().get(i);
  17. for (BufferedImage image : page.extractImages()) {
  18. File output = new File("output/" + String.format("Image_%d.png", index++));
  19. //将图片保存为PNG格式文件
  20. ImageIO.write(image, "PNG", output);
  21. }
  22. }
  23. }
  24. }

结果:

3. 替换PDF中图片

  1. import com.spire.pdf.PdfDocument;
  2. import com.spire.pdf.PdfPageBase;
  3. import com.spire.pdf.graphics.PdfImage;
  4. import java.io.IOException;
  5.  
  6. public class ReplaceImage {
  7. public static void main(String[] args) throws IOException {
  8. //创建一个PDF实例
  9. PdfDocument pdf = new PdfDocument();
  10. //加载PDF文档
  11. pdf.loadFromFile("data/Sample.pdf");
  12. //获取第一页
  13. PdfPageBase page = pdf.getPages().);
  14. //加载一张图片
  15. PdfImage image = PdfImage.fromFile("data/1.png");
  16. //使用加载的图片替换第一页上的第一张图片
  17. page.replaceImage(, image);
  18. //保存文档
  19. pdf.saveToFile("替换图片.pdf");
  20. }
  21. }

结果:

4. 删除PDF中图片

  1. import com.spire.pdf.*;
  2. public class deleteImage {
  3. public static void main(String[] args) {
  4. //创建PDF实例
  5. PdfDocument doc = new PdfDocument();
  6. //加载PDF源文档
  7. doc.loadFromFile("data/Sample.pdf");
  8. //获取文档的第一页
  9. PdfPageBase page = doc.getPages().);
  10. //删除第一页的第一张图
  11. page.deleteImage();
  12. //保存文档
  13. doc.saveToFile("output/deleteImage.pdf");
  14. doc.close();
  15. }
  16. }

结果:

P.S. 另外关于PDF中图片的操作还有:为PDF添加图片水印

(本文完)

Java添加、提取、替换和删除PDF图片的更多相关文章

  1. Java 添加、替换、删除PDF中的图片

    概述 本文介绍通过java程序向PDF文档添加图片,以及替换和删除PDF中已有的图片.另外,关于图片的操作还可参考设置PDF 图片背景.设置PDF图片水印.读取PDF中的图片.将PDF保存为图片等文章 ...

  2. JAVA 添加、修改和删除PDF书签

    当阅读篇幅较长的PDF文档时,为方便我们再次阅读时快速定位到上一次的阅读位置,可以插入一个书签进行标记:此外,对于文档中已有的书签,我们也可以根据需要进行修改或者删除等操作.本篇文章将通过Java编程 ...

  3. Java 添加、读取、删除Excel图片

    本文介绍在Java程序中如何添加图片到excel表格,添加图片时可设置图片大小.位置.旋转.超链接.可选文本等,以及如何读取.删除excel表格中已有的图片. 工具:Free Spire.XLS fo ...

  4. C# 添加、修改和删除PDF书签

    C# 添加.修改和删除PDF书签 有时候我们在阅读PDF文档时会遇到这样一种情况:PDF文档页数比较多,但是又没有书签,所以我们不能根据书签快速了解文档所讲解的内容,也不能点击书签快速跳转到相应的位置 ...

  5. C# 添加、获取及删除PDF附件

    C# 添加.获取及删除PDF附件 前言 附件在PDF文档中很常见,这些附件可以是PDF或其他类型的文件.在PDF中,附件有两种存在方式,一种是普通的文件附件(document-level file a ...

  6. Java 添加、读取和删除 Excel 批注

    批注是一种富文本注释,常用于为指定的Excel单元格添加提示或附加信息. Free Spire.XLS for Java 为开发人员免费提供了在Java应用程序中对Excel文件添加和操作批注的功能. ...

  7. Java 添加、下载、读取PDF附件信息(基于Spire.Cloud.SDK for Java)

    Spire.Cloud.SDK for Java提供了PdfAttachmentsApi接口添加附件addAttachment().下载附件downloadAttachment().获取附件信息get ...

  8. Java 添加 、读取以及删除PPT幻灯片中的视频、音频文件

    在PPT中,可以操作很多种元素,如形状.图形.文字.图片.表格等,也可以插入视频或者音频文件,来丰富幻灯片的内容呈现方式.下面将介绍在Java程序中如何来添加视频.音频文件到PPT幻灯片,读取和删除幻 ...

  9. 创建PDF模板,java添加内容、导出下载PDF

    本文主要内容是:用java在pdf模板中加入数据,图片. 废话不多说,举个非常简单的例子: 首先创建word文档,导出PDF. 用 软件adobe acrobat打开,操作步骤如图: 在指定位置添加文 ...

随机推荐

  1. javascript中 if(变量)和if(变量==true)的区别

    if(判断表达式){执行内容} 如果判断表达式为true,则执行括号中的内容.这里,变量如果不为0,null,undefined,false,都会被处理为true.只要变量有非0的值或是某个对象,数组 ...

  2. 在Apache服务器中禁用option

    在apache禁止 http OPTIONS方法. apache disable http OPTIONS method 2013-04-17 09:27 4050人阅读 评论(1) 收藏 举报  分 ...

  3. 汇编4OPCODE

    opcode原理 前缀域 切换操作数大小前缀 : 066h 可以将32位的操作数切换成16位的操作数 B8 00010000 | MOV EAX,0x100     66:B8 0001 | MOV ...

  4. Asp.Net Core 入门(二)——Startup.cs做了什么

    上篇介绍了Program.cs中Main做了什么,这篇我们来讨论下Startup.cs它又做了什么呢? 我们新建一个Asp.Net Core Mvc项目,先来开一下Startup的代码 public ...

  5. 制作JPEGImages出现的bug

    我用的是下面这个脚本进行改名字: import os import sys path = "/home/bnrc/py-faster-rcnn/data/VOCdevkit2007/VOC2 ...

  6. tensorflow note

    #!/usr/bin/python # -*- coding: UTF- -*- # @date: // : # @name: first_tf_1223 # @author:vickey-wu fr ...

  7. DNS查询过程

    DNS查询过程 假设www.abc.com的主机要查询www.xyz.abc.com的服务器ip地址. 知识点 1.hosts文件:以静态映射的方式提供IP地址与主机名的对照表,类似ARP表 2.域: ...

  8. MYSQL数据库攻防与加固

    这是“官方”原本的模样搬过来的..写的很粗略啊.还有篇详细的请查看:MySQL安全加固题目及答案参考解析 启动xserver-mysql,进入xserver-mysql,开始实验,实验步骤如下: 1. ...

  9. CUDA & cuDNN环境配置

    环境 python3.5 tensorflow 1.3 VUDA  8.0 cuDNN V6.0 1.确保GPU驱动已经安装 lspci | grep -i nvidia 通过此命令可以查看GPU信息 ...

  10. Uncaught ReferenceError: 板栗 is not defined at HTMLButtonElement.onclick (view:1)

    对JS传值一直以为都是随便传过去就行,直到今天遇到了中文传值的问题 中文传值不能够需要在调用的位置加 对于要传的值加单引号或者双引号 比如说下面这个样子,我这里还还记反斜杠注释 '<button ...