(一)简介

​ 这篇文章将介绍通过Java添加、提取、删除和替换PDF文档中的图片。

工具使用:

Free Spire.PDF for JAVA 2.4.4(免费版)

Intellij IDEAJar包导入:方式一:从官网获取Free Spire.PDF for Java之后解压,以下是三种在IDEA中快速打开Project Structure界面的方式;如下图:

然后:① 选择“Modules”—“Dependencies”,添加外置jar包;② 进入"Attach File or Directories"界面选择jar文件路径,然后点击“OK”;③ 勾选jar路径选项,点击”OK”/”Apply”;④ 导入完成。如下图:
方式二:使用Maven配置导包。可以参考官方帮助文档。主要参考使用的源文档截图:

(二)JAVA 代码示例1) 给PDF添加图片

import com.spire.pdf.*;import com.spire.pdf.graphics.*;public class drawImage { public static void main(String[] args) { PdfDocument doc = new PdfDocument(); doc.loadFromFile("data/Sample.pdf"); //获取文档的第一页 PdfPageBase page = doc.getPages().get(0); 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, 420,100, 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{ //加载测试文档 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("data/Sample.pdf"); int index = 0; //遍历PDF每一页 for (int i= 0;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().get(0); //加载一张图片 PdfImage image = PdfImage.fromFile("data/1.png"); //使用加载的图片替换第一页上的第一张图片 page.replaceImage(0, 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().get(0); //删除第一页的第一张图 page.deleteImage(0); doc.saveToFile("output/删除图片.pdf"); doc.close(); }}

结果:

(本文完)