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 查找替换文本的资料请关注脚本之家其它相关文章!

相关文章

  • WebService的相关概念

    WebService的相关概念

    这篇文章主要介绍了WebService的相关概念的相关资料,需要的朋友可以参考下
    2017-10-10
  • java基本教程之线程让步 java多线程教程

    java基本教程之线程让步 java多线程教程

    本文对Thread中的线程让步方法yield()进行介绍,yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权,大家参考使用吧
    2014-01-01
  • java编程实现邮件定时发送的方法

    java编程实现邮件定时发送的方法

    这篇文章主要介绍了java编程实现邮件定时发送的方法,涉及Java基于定时器实现计划任务的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Java中的logback标记日志过滤器MarkerFilter详解

    Java中的logback标记日志过滤器MarkerFilter详解

    这篇文章主要介绍了Java中的logback标记日志过滤器MarkerFilter详解,在logback-classic中存在一个全局过滤器TurboFilter,TurboFilter是与LoggerContext绑定,会在会在其它过滤器之前执行,需要的朋友可以参考下
    2023-11-11
  • Java的Socket实现长连接以及数据的发送和接收方式

    Java的Socket实现长连接以及数据的发送和接收方式

    这篇文章主要介绍了Java的Socket实现长连接以及数据的发送和接收方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java中Map.entry的具体使用

    Java中Map.entry的具体使用

    Map.Entry 是Map中的一个接口,Map.Entry里有相应的getKey和getValue方法,让我们能够从一个项中取出Key和Value,本文就详细的介绍一下Map.entry的具体使用,感兴趣的可以了解一下
    2023-05-05
  • Java RandomAccessFile的用法详解

    Java RandomAccessFile的用法详解

    下面小编就为大家带来一篇Java RandomAccessFile的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 浅谈java IO流——四大抽象类

    浅谈java IO流——四大抽象类

    这篇文章主要介绍了java IO流——四大抽象类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • IDEA 格式化SQL代码技巧分享

    IDEA 格式化SQL代码技巧分享

    这篇文章主要介绍了IDEA 格式化SQL代码技巧分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • java弹幕小游戏1.0版本

    java弹幕小游戏1.0版本

    这篇文章主要为大家详细介绍了java弹幕小游戏1.0版本,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10

最新评论