在文档处理、数据分析、内容审核等场景中,经常需要批量检索 PDF 中的指定文本,并对目标内容进行高亮标注,方便快速识别重点信息。Python 拥有丰富的 PDF 处理库,能够高效实现这类自动化操作。本文将介绍两种实用的 PDF 文本查找高亮方案,分别适配固定文本精准匹配、正则模糊匹配场景,代码简洁、开箱即用。

本次实现依托 Free Spire.PDF for Python 处理库完成文本检索与高亮功能,无需复杂的 PDF 底层解析逻辑,通过封装好的工具类即可快速实现需求。该工具支持页面遍历、精准文本检索、正则匹配、自定义高亮颜色等核心能力,适配绝大多数轻量化 PDF 文本处理场景。
需要注意的是,该工具存在使用限制,仅支持处理10页以内的 PDF 文档,完全满足日常轻量化调试、少量文档处理的使用需求。
使用前需完成环境安装,执行以下 pip 命令安装依赖:
pip install spire.pdf.free该场景适用于已知明确关键词,需要遍历 PDF 所有页面,批量查找并高亮所有匹配内容的需求,例如检索文档
from spire.pdf import *
from spire.pdf.common import*
# 创建PdfDocument类对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 循环遍历PDF文档中的所有页面
for i in range(pdf.Pages.Count):
page = pdf.Pages.get_Item(i)
# 为当前页面创建文本检索对象
pdfTextFinder = PdfTextFinder(page)
# 查找页面上所有匹配目标文本的内容
result = pdfTextFinder.Find("云服务器")
# 为所有匹配文本添加青色高亮
for find in result:
find.HighLight(Color.get_Cyan())
# 保存处理后的PDF文档
pdf.SaveToFile("output/查找并突出显示.pdf")
# 释放文档资源
pdf.Close()在很多场景中,目标文本无固定内容,但存在统一格式规则,例如文档中的百分比数据、数字、手机号、日期等。此时可通过开启正则匹配模式,结合正则表达式批量匹配符合规则的文本并高亮,适配更灵活的检索需求。
本次示例以匹配所有数字、百分比数据为例,实现格式文本的批量高亮。
from spire.pdf import *
from spire.pdf.common import*
# 创建PdfDocument类对象并加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")
# 获取PDF第一页,可修改索引指定任意页面
page = pdf.Pages.get_Item(0)
# 初始化页面文本检索对象
pdfTextFinder = PdfTextFinder(page)
# 开启正则表达式匹配模式
pdfTextFinder.Options.Parameter = TextFindParameter.Regex
# 正则规则:匹配整数、小数、百分数(如10、99.9、50%)
pattern = r'\d+(?:\.\d+)?%?'
# 执行正则匹配,获取所有符合规则的文本片段
result = pdfTextFinder.Find(pattern)
# 为匹配内容添加深粉色高亮
for find in result:
find.HighLight(Color.get_DeepPink())
# 保存处理后的文档
pdf.SaveToFile("output/查找并突出显示.pdf")
# 释放资源
pdf.Close()\d+(?:\.\d+)?%? 可覆盖纯数字、小数、百分比三类常见数值格式,可根据业务需求替换为手机号、日期、邮箱等正则规则。需提前创建代码中指定的 output 文件夹,否则会出现路径不存在报错,可通过 os.makedirs("output", exist_ok=True) 自动创建目录。
当前工具仅支持10页及以内PDF处理,超长文档可提前拆分PDF后再执行检索高亮操作。
默认匹配包含文本片段的所有内容,如需整词匹配、区分大小写,可通过配置检索器的 Options 参数,开启整词匹配、大小写敏感模式。
本文通过两个核心场景,实现了 Python 下 PDF 文本的精准检索高亮与正则模糊检索高亮功能。代码轻量化、无冗余逻辑,适合快速集成到自动化文档处理脚本中。对于日常少量、短篇幅 PDF 的重点内容标注、数据提取预处理等场景,该方案简单高效,能够大幅提升人工文档审阅的效率。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。