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

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

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

Jar文件获取及导入:

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


Java 提取、替换、删除PDF文档中的图片_第1张图片

方法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);

            }

        }

    }

}

图片提取效果:


Java 提取、替换、删除PDF文档中的图片_第2张图片


【示例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");

}

}

图片替换效果:

Java 提取、替换、删除PDF文档中的图片_第3张图片


【示例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 提取、替换、删除PDF文档中的图片_第4张图片

(本文完)

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