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

1. 程序环境准备如下:

程序使用环境如图,需要注意的是,本文使用了免费版的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中的指定文本的更多相关文章

  1. java itext替换PDF中的文本

    itext没有提供直接替换PDF文本的接口,我们可以通过在原有的文本区域覆盖一个遮挡层,再在上面加上文本来实现. 所需jar包: 1.先在PDF需要替换的位置覆盖一个白色遮挡层(颜色可根据PDF文字背 ...

  2. Java 替换PDF中的字体

    文档中可通过应用不同的字体来呈现不一样的视觉效果,通过字体来实现文档布局.排版等设计需要.应用字体时,可在创建文档时指定字体,也可以用新字体去替换文档中已有的字体.下面,以Java代码展示如何来替换P ...

  3. 使用itext直接替换PDF中的文本

    直接说问题,itext没有直接提供替换PDF中文本的接口(查看资料得到的结论是PDF不支持这种操作),不过存在解决思路:在需要替换的文本上覆盖新的文本.按照这个思路我们需要解决以下几个问题: itex ...

  4. 使用 sed 命令查找和替换文件中的字符串的 16 个示例

    当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

  5. DjVu、PDF中的隐藏文本

    作者:马健邮箱:stronghorse_mj@hotmail.com发布:2012.06.11 目录一.背景二.DjVu中的隐藏文本三.PDF中的隐藏文本 一.背景 目前对于扫描电子文档,网上比较流行 ...

  6. 校对双层PDF中的隐藏文本

    作者:马健邮箱:stronghorse_mj@hotmail.com发布:2012.06.11 目录一.背景二.能够校对的PDF需要满足的条件三.校对工具的选择四.校对过程五.延伸讨论 事先声明:本文 ...

  7. Java如何计数替换字符串中第一次出现的子字符串?

    在Java编程中,如何拆分正则表达式和字符串? 以下示例演示如何使用Matcher类的replaceFirst()方法替换字符中指定的子字符串的首次出现. package com.yiibai; im ...

  8. java替换文件中某一行文本的内容

    个人博客 地址:http://www.wenhaofan.com/article/20180913160442 代码如下 package com.wenhaofan.common.kit; impor ...

  9. Java 添加、提取PDF中的图片

    Spire.Cloud.SDK for Java提供了PdfImagesApi接口可用于添加图片到PDF文档addImage().提取PDF中的图片extractImages(),具体操作步骤和Jav ...

  10. 读取Json,并替换json中的指定字符

    string jsonfile = @"E:\history.json";//JSON文件路径 using (System.IO.FileStream file = new Fil ...

随机推荐

  1. SVN: Could not resolve hostname 解决方法_

    svn 报错如下 org.tigris.subversion.javahl.ClientException: RA layer request failed svn: OPTIONS of '[你的s ...

  2. 2023 Visual Studio Code 插件推荐:18 个提高开发效率的常用插件

    Visual Studio Code (简称VSCode) 是一款强大的开源代码编辑器,它拥有众多功能强大的扩展插件,使得开发者可以根据自己的需求来定制编辑器的功能和外观.在本文中,我们将分享一些非常 ...

  3. 一分钟了解 ChatGPT 语音对话

    一.背景 近期 ChatGPT 推出新的语音和图像功能,可以与用户进行语音对话或基于用户上传的图像进行分析和对话,提供了一种新的.更直观的交互体验.用户可以更轻松地表达自己的需求.提出问题,并获得 C ...

  4. 【日常收支账本】【Day01】用PySide6开发一个记账的小软件——初步构思

    软件环境 Python 3.10 超详细Python安装教程 PyCharm Community Edition 2023.2.1 PySide6 6.5.1.1 需求分析 1. 基本要素 个人钱款一 ...

  5. Spring5学习随笔-Spring5的基本介绍、工厂设计模式

    学习视频:[孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索.学不会Spring?只因你未遇见孙哥] Spring系列-工厂 第一章.引言 Spring I ...

  6. Codeforces Round #538 (Div. 2) F. Please, another Queries on Array?

    原题链接 F. Please, another Queries on Array? 这道题让求\(\phi(\prod\limits_{i = l}^r a_i)\),然后我们化简一下. 设\(P\) ...

  7. 初窥门径,从大模型到内容生成看AI新次元

    视频云AI进化新纪元. 最近Gartner发布2024年十大战略技术趋势,AI显然成为其背后共同的主题.全民化的生成式人工智能.AI增强开发.智能应用......我们正在进入一个AI新纪元. 从Cha ...

  8. NOIP2023 游寄

    NOIP2023 游寄 Day -2 遗憾生病离场回家. Day -1 速度赶往杭州,稍作复习. Day 1 正式开寄. 开题后,发现把所有题看了一遍,一如既往的又臭又长. T3 和 T4 感觉很不可 ...

  9. Vite4+Typescript+Vue3+Pinia 从零搭建(4) - 代码规范

    项目代码同步至码云 weiz-vue3-template 要求代码规范,主要是为了提高多人协同和代码维护效率,结合到此项目,具体工作就是为项目配置 eslint 和 prettier. editorc ...

  10. LangChain内幕指南

    1.概述 在人工智能迅速演进的时代,诸如Open AI的ChatGPT和Google的Bard等大型语言模型(LLMs)正彻底改变我们与技术互动的方式.这些技术巨头和SaaS公司正在竞相利用LLMs的 ...