(一)简介

这篇文章将介绍在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添加图片

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图片的更多相关文章

  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. iOS 如何使用TabbarController

    xcode中给我内置很多app模版,不过很多时候我们需要更加灵活的初始化项目.下面我就简单介绍一下,如何从0开始制作一个tabbar app. 创建个项目,由于我们从头开始写程序,因此理论上对模版没有 ...

  2. golang结构体排序 - 根据下载时间重命名本地文件

    喜M拉Y下载音频到手机,使用ximalaya.exe 解密[.x2m]为[.m4a]根据文件下载创建时间,顺序重命名文件,方便后续播放. 源码如下:package main import ( &quo ...

  3. stay hungry stay foolish.

    I am honored to be with you today at your commencement from one of the finest universities in the wo ...

  4. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1146

    问题介绍:   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1146 MySql语法错误, 但是错 ...

  5. zeromq编译与应用

    libzmq是c++语言开发的,正式版本在这里: https://github.com/zeromq/libzmq/releases 到这篇文件发布为止,正式稳定版是4.2.2 1,按照给出的链接下载 ...

  6. 《3+1团队》【Alpha】Scrum meeting 4

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 3+1团队 团队博客地址 https://home.cnblogs.com/u/3-1group ...

  7. Liskon替换原则

    肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑.其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的. 定义1:如果对每一 ...

  8. openjudge-1664 放苹果

    总时间限制: 1000ms 内存限制: 65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输 ...

  9. phpstorm的全局操作快捷键ctrl+shift+f被搜狗占用处理方法

    1.找到搜狗软件,右键选择属性设置 2.如图选择系统功能快捷键 3.去掉简繁切换快捷方式,确定后即可使用phpstorm的ctrl+shift+f来进行全局查找

  10. MySQL数据类型与操作

    内容提要: 建表完整语法规范(create table 表格(字段名1 类型 (宽度) 约束条件)) MySQL数据库数据类型(整型.浮点型.字符类型(char与varchar).日期类型.枚举与集合 ...