java 查找替换pdf中的指定文本

 更新时间:2020年12月30日 10:29:50   作者:E-iceblue  
这篇文章主要介绍了java 如何查找替换pdf中的指定文本,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下

本文介绍通过Java程序批量替换PDF中的指定文本内容。

程序环境准备如下:

程序使用环境如图,需要注意的是,本文使用了免费版的PDF jar工具;另外JDK版本建议使用高版本更佳。

  jar文件导入后,可调用Spire.PDF提供的接口、方法等操作PDF,参考如下导入结果:

 注:可手动下载jar包。下载后,解压文件,将lib文件夹下的Spire.Pdf.jar文件导入Java程序。

Java 代码示例

import com.spire.pdf.*;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.general.find.PdfTextFindCollection;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.graphics.PdfSolidBrush;
import com.spire.pdf.graphics.PdfTrueTypeFont;

import java.awt.*;
import java.awt.geom.Rectangle2D;

public class FindAndReplaceText {
  public static void main(String[] args) {
    //加载示例PDF文档
    PdfDocument pdf = new PdfDocument();
    pdf.loadFromFile("咖啡豆.pdf");

    //遍历文档每一页
    for (int i = 0; i < pdf.getPages().getCount(); i++)
    {
      //获取所有页面
      PdfPageBase page = pdf.getPages().get(i);

      //查找指定文本
      PdfTextFindCollection textFindCollection;
      textFindCollection = page.findText("咖啡",false);

      //创建画刷、字体
      PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.red));
      PdfTrueTypeFont font1= new PdfTrueTypeFont(new Font("宋体",Font.PLAIN,9),true);

      //用新的文本字符替换原有文本
      Rectangle2D rec;
      for(PdfTextFind find: textFindCollection.getFinds())
      {
        rec = find.getBounds();
        page.getCanvas().drawRectangle(PdfBrushes.getWhite(), rec);
        page.getCanvas().drawString("Coffee", font1, brush1, rec);
      }

    }

    //保存文档
    pdf.saveToFile("FindAndReplaceText.pdf");
    pdf.close();
  }
}

文本替换前后效果:

以上就是java 查找替换pdf中的指定文本的详细内容,更多关于java 查找替换文本的资料请关注脚本之家其它相关文章!

相关文章

  • Java Process与Runtime()的使用及调用cmd命令阻塞的解决方案

    Java Process与Runtime()的使用及调用cmd命令阻塞的解决方案

    这篇文章主要介绍了Java Process与Runtime()的使用及调用cmd命令阻塞的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • RabbitMQ消息有效期与死信的处理过程

    RabbitMQ消息有效期与死信的处理过程

    利用DLX,当消息在一个队列中变成死信 (dead message) 之后,它能被重新publish到另一个Exchange,这个Exchange就是DLX,本文重点给大家介绍RabbitMQ消息有效期与死信的相关知识,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • spring整合shiro框架的实现步骤记录

    spring整合shiro框架的实现步骤记录

    Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。下面这篇文章主要给大家介绍了关于spring整合shiro框架的实现步骤,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-05-05
  • Spring AOP使用之多切面运行顺序

    Spring AOP使用之多切面运行顺序

    这篇文章主要介绍了Spring AOP使用之多切面运行顺序,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java编程实现时间和时间戳相互转换实例

    Java编程实现时间和时间戳相互转换实例

    这篇文章主要介绍了什么是时间戳,以及Java编程实现时间和时间戳相互转换实例,具有一定的参考价值,需要的朋友可以了解下。
    2017-09-09
  • jdk15的安装与配置全过程记录

    jdk15的安装与配置全过程记录

    这篇文章主要给大家介绍了关于jdk15的安装与配置,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 浅析Java中线程的创建和启动

    浅析Java中线程的创建和启动

    这篇文章运用实例代码介绍了Java中线程的创建和启动,非常详细,有需要的朋友们可以参考借鉴,下面一起来看看。
    2016-08-08
  • Fluent Mybatis让你摆脱Xml文件的技巧

    Fluent Mybatis让你摆脱Xml文件的技巧

    Fluent-Mybatis类似于Mybatis-Plus是对Mybatis进一步的封装,可以只用一个实体类对象,通过代码生成器,在编译的过程中生成所需要的各类文件,简化了项目的基础构建,提高开发效率,本文重点给大家介绍Fluent Mybaits让你摆脱Xml文件的技巧,一起看看吧
    2021-08-08
  • JavaWeb实现注册用户名检测

    JavaWeb实现注册用户名检测

    这篇文章主要为大家详细介绍了JavaWeb实现注册用户名检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • java数据结构和算法中哈希表知识点详解

    java数据结构和算法中哈希表知识点详解

    在本篇文章里小编给大家分享了关于java数据结构和算法中哈希表的相关知识点内容,需要的朋友们学习下。
    2019-06-06

最新评论