Java 提取、替换、删除PDF文档中的图片

       在一篇文章里,配有与文本信息相得益彰的图片,不仅能够活跃与美化版面,同时也有利于提高文章的可读性和阅读效果,从而增强其吸引力。同时,对文档中已存在图片的处理也尤为重要。本文将通过使用Java程序来演示如何对PDF文档中的图片进行提取、替换和删除。

使用工具:Free Spire.PDF for Java (免费版)

Jar文件获取及导入:

方法1:通过官网下载获取jar包。解压后将lib文件夹下的Spire.Pdf.jar文件导入Java程序。(如下图)


方法2:通过maven仓库安装导入。具体安装详解参见此网页


【示例1】提取PDF中的图片

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import com.spire.pdf.PdfDocument;

import com.spire.pdf.PdfPageBase;

public class ExtractPicture {

public static void main(String[] args) throws IOException {

//创建PdfDocument实例

PdfDocument doc = new PdfDocument();

//加载PDF文件

doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf");

int index = 0;

//遍历PDF文件中的页面

for (PdfPageBase page : (Iterable) doc.getPages()) {

//提取页面中的图片并保存至本地文件夹

for (BufferedImage image : page.extractImages()) {

File output =new File("C:\\Users\\Test1\\Desktop\\ExtractPicture\\" + String.format("Image_%d.png", index++));

ImageIO.write(image,"PNG", output);

            }

        }

    }

}

图片提取效果:



【示例2】替换PDF中的图片

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) {

//加载PDF文档

PdfDocument pdf =new PdfDocument();

pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf");

//获取第一页

PdfPageBase page = pdf.getPages().get(0);

//加载一张图片

PdfImage image = PdfImage.fromFile("C:\\Users\\Test1\\Desktop\\Image.png");

//使用加载的图片替换第一页上的第一张图片

page.replaceImage(0, image);

//保存文档

pdf.saveToFile("output/ReplaceImage.pdf");

}

}

图片替换效果:


【示例3】删除PDF中的图片

import com.spire.pdf.FileFormat;

import com.spire.pdf.PdfDocument;

import com.spire.pdf.PdfPageBase;

import com.spire.pdf.exporting.PdfImageInfo;

public class DeleteImage {

public static void main(String[] args) {

//创建PdfDocument对象

PdfDocument doc =new PdfDocument();

//加载PDF文档

doc.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.pdf");

//遍历文档每一页

for (int i =0; i < doc.getPages().getCount(); i++) {

//获取特定页

PdfPageBase page = doc.getPages().get(i);

//获取页面上的图片信息

PdfImageInfo[] imageInfo = page.getImagesInfo();

//遍历每一个图片

for (int j = imageInfo.length; j >0; j--) {

//通过图片的索引删除图片

page.deleteImage(j -1);

}

}

//保存文档

doc.saveToFile("output/DeleteImages.pdf", FileFormat.PDF);

}

}


图片删除效果:


(本文完)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 页眉和页脚通常是显示文档的附加信息,常用来插入页码、时间、日期、个人信息、微标等。特别是其中插入的页码,通...
    Tina_Tang阅读 6,091评论 0 1
  • 两年大学生活,所做的每件事都无怨无悔, 尽自己的努力,未曾给自己留下半点遗憾。 ----致大学 我怀着一颗憧憬的心...
    一袭青衫伴月明阅读 1,612评论 0 2
  • 她叫轻仪,是一个中学的三好学生,清新脱俗,她总是穿着衬衫,披散着头发,干净的布鞋,抱着几本书,迈着轻快的步伐...
    半杯微光阅读 3,012评论 1 1
  • 微风细扬,涤荡心中不灭的光。 群峰险峻,犹如岁月起伏无常。 游乐万峰,释放云般书卷压膛。 预祝科试,必将破兵斩将惊磅。
    菱角翰林阅读 1,513评论 0 0
  • 【利用假期整理拖欠出版社已久的书稿《致新教师》,从邮件中翻出2011年我获评江苏省教授级中学高级教师后,王晴博士受...
    袁卫星阅读 5,040评论 5 13

友情链接更多精彩内容