java 查找替换pdf中的指定文本
作者:E-iceblue 时间:2022-08-17 14:04:46
本文介绍通过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();
}
}
文本替换前后效果:
来源:https://www.cnblogs.com/Yesi/p/14206526.html
标签:java,pdf,查找,文本,替换
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#使用oledb操作excel文件的方法
2023-06-13 19:19:42
flutter实现倒计时加载页面
2023-08-18 23:30:09
![](https://img.aspxhome.com/file/2023/1/109171_0s.gif)
c#使用listbox的详细方法和常见问题解决
2023-08-27 11:28:56
![](https://img.aspxhome.com/file/2023/9/68069_0s.jpg)
一次由Lombok的@AllArgsConstructor注解引发的错误及解决
2023-10-07 05:23:42
![](https://img.aspxhome.com/file/2023/3/58683_0s.png)
Android+SQLite数据库实现的生词记事本功能实例
2023-06-18 10:41:35
Spring与Mybatis基于注解整合Redis的方法
2022-09-19 09:19:56
![](https://img.aspxhome.com/file/2023/5/61075_0s.png)
java中对象调用成员变量与成员实例方法
2023-08-04 11:42:49
![](https://img.aspxhome.com/file/2023/4/71944_0s.png)
Java Scala实现数据库增删查改操作详解
2022-02-03 05:09:22
![](https://img.aspxhome.com/file/2023/0/61830_0s.png)
详解java基于MyBatis使用示例
2023-11-25 09:01:45
![](https://img.aspxhome.com/file/2023/0/59060_0s.png)
Java简单高效实现分页功能
2022-05-24 13:56:02
java实现上传文件类型检测过程解析
2023-11-09 12:04:21
Struts2中Action中是否需要实现Execute方法
2021-10-30 06:57:23
Java concurrency线程池之线程池原理(二)_动力节点Java学院整理
2023-11-28 23:43:18
IDEA创建Java项目文件并运行教程解析
2023-01-14 15:50:47
![](https://img.aspxhome.com/file/2023/8/66648_0s.png)
Java爬虫实现Jsoup利用dom方法遍历Document对象
2023-06-15 07:52:36
Java的Hibernate框架结合MySQL的入门学习教程
2021-10-18 04:48:20
![](https://img.aspxhome.com/file/2023/7/67007_0s.png)
Unity3D基于OnGUI实时显示FPS
2021-06-25 09:10:52
Springboot与Maven多环境配置的解决方案
2023-11-29 08:53:58
![](https://img.aspxhome.com/file/2023/9/60679_0s.png)
详解Spring 中 Bean 对象的存储和取出
2023-08-06 02:42:46
![](https://img.aspxhome.com/file/2023/2/57832_0s.png)
java中staticclass静态类详解
2021-10-12 19:47:35