怎么用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);

}

}

 

 

图片删除效果:

 

 

“大清亡于闭关锁国,学习技术需要交流和资料”。 在这里我给大家准备了很多的学习资料免费获取,包括但不限于java进阶学习资料、技术干货、大厂面试题系列、技术动向、职业生涯等一切有关程序员的分享.

java进阶方法笔记,学习资料,面试题,电子书籍免费领取,让你成为java大神,追到自己的女神,走向人生巅峰

你可能感兴趣的:(怎么用Java 高效提取、替换、删除PDF文档中的图片)