如何通过Java代码在PDF中插入、替换或删除图像?

打印 上一主题 下一主题

主题 854|帖子 854|积分 2562

图文并茂的内容往往让人看起来更加舒服,如果只是文字内容的累加,往往会使读者产生视觉疲劳。搭配精美的文章配图则会使文章内容更加丰富,增加文章可读性的同时,也能提升用户体验。但由于PDF文档安全性较高,不易对其进行修改编辑,那我们要如何在PDF中插入、替换或删除图像呢?别担心,今天为大家介绍一种高效便捷的方法。我们可以通过编程的方式来实现此操作。

  •     将图像插入PDF文档
  •     替换PDF文档中的图像
  •     删除PDF文档中的指定图像
代码编译环境:
IntelliJ IDEA 2018(jdk 1.8.0)
PDF Jar包:​ ​Free Spire.PDF for Java 5.1.0
1.引入jar包
导入方法1:
手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:
导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。
  1. <repositories>
  2.         <repository>
  3.             <id>com.e-iceblue</id>
  4.             <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
  5.         </repository>
  6.     </repositories>
  7. <dependencies>
  8.     <dependency>
  9.         <groupId>e-iceblue</groupId>
  10.         <artifactId>spire.pdf.free</artifactId>
  11.         <version>5.1.0</version>
  12.     </dependency>
  13. </dependencies>
复制代码
将图像插入PDF文档


  • 初始化 PdfDocument 类的实例。
  • 使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。
  • 使用 PdfDocument.getPages().get() 方法在 PDF 文档中获取所需的页面。
  • 使用 PdfImage.fromFile() 方法加载图像。
  • 指定页面上图像区域的宽度和高度。
  • 指定 X 和 Y 坐标以开始绘制图像。
  • 使用 PdfPageBase.getCanvas().drawImage() 方法在页面上绘制图像。
  • 使用 PdfDocument.saveToFile() 方法保存结果文档。
完整代码

Java
  1. import com.spire.pdf.FileFormat;
  2. import com.spire.pdf.PdfDocument;
  3. import com.spire.pdf.PdfPageBase;
  4. import com.spire.pdf.graphics.*;
  5. public class AddImage {
  6.     public static void main(String []args){
  7.         //初始化 PdfDocument 类的实例
  8.         PdfDocument pdf = new PdfDocument();
  9.         pdf.loadFromFile("阿拉斯加犬.pdf");
  10.         //获取所需的页面
  11.         PdfPageBase page = pdf.getPages().get(0);
  12.         //加载图像
  13.         PdfImage image = PdfImage.fromFile("图片1.jpg");
  14.         //指定页面上图像区域的宽度和高度
  15.         float width = image.getWidth() * 0.30f;
  16.         float height = image.getHeight() * 0.30f;
  17.         //指定 X 和 Y 坐标以开始绘制图像
  18.         float x = 130f;
  19.         float y = 240f;
  20.         //在页面指定位置上绘制图像
  21.         page.getCanvas().drawImage(image, x, y, width, height);
  22.         //保存结果文档
  23.         pdf.saveToFile("插入图片.pdf", FileFormat.PDF);
  24.     }
  25. }
复制代码
效果图


替换PDF文档中的图像

以下是替换PDF文档图像的具体步骤:

  • 初始化 PdfDocument 类的实例。
  • 使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。
  • 使用 PdfDocument.getPages().get() 方法在 PDF 文档中获取所需的页面。
  • 使用 PdfImage.fromFile() 方法加载图像。
  • 使用 PdfPageBase.replaceImage() 方法将页面上的特定图像替换为加载的图像。
  • 使用 PdfDocument.saveToFile() 方法保存结果文档。
完整代码

Java
  1. import com.spire.pdf.FileFormat;
  2. import com.spire.pdf.PdfDocument;
  3. import com.spire.pdf.PdfPageBase;
  4. import com.spire.pdf.graphics.PdfImage;
  5. public class ReplaceImage {
  6.     public static void main(String []args){
  7.         //初始化 PdfDocument 类的实例
  8.         PdfDocument doc = new PdfDocument();
  9.         //加载 PDF 文档
  10.         doc.loadFromFile("插入图片.pdf");
  11.         //获取所需的页面
  12.         PdfPageBase page = doc.getPages().get(0);
  13.         //加载图像
  14.         PdfImage image = PdfImage.fromFile("图片2.jpg");
  15.         //将页面上的指定图像替换为加载的图像
  16.         page.replaceImage(0, image);
  17.         //保存结果文档
  18.         doc.saveToFile("替换图片.pdf", FileFormat.PDF);
  19.     }
  20. }
复制代码
效果图


删除PDF文档中的指定图像

以下是从 PDF 文档中删除图像的具体步骤:

  • 初始化 PdfDocument 类的实例。
  • 使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。
  • 使用 PdfDocument.getPages().get() 方法在 PDF 文档中获取所需的页面。
  • 使用 PdfPageBase.deleteImage() 方法删除页面上的特定图像。
  • 使用 PdfDocument.saveToFile() 方法保存结果文档。
完整代码

Java
  1. import com.spire.pdf.FileFormat;
  2. import com.spire.pdf.PdfDocument;
  3. import com.spire.pdf.PdfPageBase;
  4. public class DeleteImage {
  5.     public static void main(String []args){
  6.         //初始化 PdfDocument 类的实例
  7.         PdfDocument pdf = new PdfDocument();
  8.         //加载 PDF 文档
  9.         pdf.loadFromFile("插入图片.pdf");
  10.         //获取所需的页面
  11.         PdfPageBase page = pdf.getPages().get(0);
  12.         //删除页面上的指定图像
  13.         page.deleteImage(0);
  14.         //保存结果文档
  15.         pdf.saveToFile("删除图片.pdf", FileFormat.PDF);
  16.     }
  17. }
复制代码
效果图


—本文完—

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表