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,查找,文本,替换
0
投稿
猜你喜欢
Android 应用中跳转到应用市场评分示例
2023-02-14 04:03:22
Java日常练习题,每天进步一点点(42)
2022-10-28 01:42:54
mybatis-plus自动填充插入更新时间有8小时时差
2021-07-26 07:18:40
C#操作session的类实例
2023-07-17 13:57:19
使用Mybatis如何实现删除多个数据
2023-06-15 21:11:57
C#获取路由器外网IP,MAC地址的实现代码
2021-07-03 06:01:32
SpringSecurity报错authenticationManager must be spec的解决
2021-07-27 21:52:27
C#使用Effects给图片增加阴影效果
2023-09-09 14:50:18
c# HttpClient设置超时的步骤
2023-05-07 10:42:29
java 单例的五种实现方式及其性能分析
2023-05-10 10:50:51
Java Document生成和解析XML操作
2021-11-10 13:17:46
Android Studio安装配置方法图文详细教程
2023-01-08 23:10:16
JVM中的GC初识
2022-08-04 08:37:13
linux下C语言中的mkdir函数与rmdir函数
2023-07-07 14:16:16
IDEA:Git stash 暂存分支修改的实现代码
2023-11-29 09:16:35
C#利用Random得随机数求均值、方差、正态分布的方法
2022-08-28 14:26:37
Java使用Freemarker页面静态化生成的实现
2022-07-24 08:48:42
C# 9 新特性——record的相关总结
2022-01-25 07:33:35
Java多线程编程综合案例详解
2023-12-09 18:13:25
Android开发实战之漂亮的ViewPager引导页
2023-04-28 01:36:38