在一篇文章里,配有与文本信息相得益彰的图片,不仅能够活跃与美化版面,同时也有利于提高文章的可读性和阅读效果,从而增强其吸引力。同时,对文档中已存在图片的处理也尤为重要。本文将通过使用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);
}
}
图片删除效果:
(本文完)