(一)简介
这篇文章将介绍在Java中添加、提取、删除和替换PDF文档中的图片。
工具使用:
- Free Spire.PDF for JAVA 2.4.4(免费版)
- Intellij IDEA
Jar包导入:
方式一:首先,从官网获取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) { //创建PDF实例 PdfDocument doc = new PdfDocument(); //加载PDF源文件 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{ //创建PDF实例 PdfDocument pdf = new PdfDocument(); //加载PDF源文件 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(1); //删除第一页的第一张图 page.deleteImage(0); //保存文档 doc.saveToFile("output/deleteImage.pdf"); doc.close(); } }
结果:
P.S. 另外关于PDF中图片的操作还有:为PDF添加图片水印。
(本文完)