在文档处理、数据分析、内容审核等场景中,经常需要批量检索 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()代码核心逻辑拆解
- 文档加载 :通过 pdfdocument 初始化文档对象,调用 loadfromfile 方法读取本地 pdf 文件,完成文档资源加载。
- 逐页遍历 :通过页面总数循环遍历文档所有页面,确保不会遗漏任意页面的目标文本。
- 文本检索 :每个页面单独初始化 pdftextfinder 检索器,调用 find 方法精准匹配指定关键词,返回所有匹配片段的对象集合。
- 高亮渲染 :遍历匹配结果,通过 highlight 方法为文本添加高亮底色,示例中使用青色(cyan),可自定义颜色参数。
- 资源收尾 :保存处理后的文档,并调用 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()核心功能说明
- 正则模式开启 :通过修改检索器的 options.parameter 参数为 regex,将默认的精准文本匹配切换为正则模糊匹配。
- 正则规则适配 :示例正则
\d+(?:\.\d+)?%?可覆盖纯数字、小数、百分比三类常见数值格式,可根据业务需求替换为手机号、日期、邮箱等正则规则。 - 指定页面处理 :示例针对单页(第一页)进行检索,如需全局正则匹配,可参考场景一的循环逻辑遍历所有页面。
- 自定义高亮样式 :支持替换不同高亮颜色,工具内置多种颜色常量,可按需切换视觉样式。
四、常见问题与优化建议
1. 文档保存失败
需提前创建代码中指定的 output 文件夹,否则会出现路径不存在报错,可通过 os.makedirs("output", exist_ok=true) 自动创建目录。
2. 超出页面限制报错
当前工具仅支持10页及以内pdf处理,超长文档可提前拆分pdf后再执行检索高亮操作。
3. 高亮精准度优化
默认匹配包含文本片段的所有内容,如需整词匹配、区分大小写,可通过配置检索器的 options 参数,开启整词匹配、大小写敏感模式。
五、总结
本文通过两个核心场景,实现了 python 下 pdf 文本的精准检索高亮与正则模糊检索高亮功能。代码轻量化、无冗余逻辑,适合快速集成到自动化文档处理脚本中。对于日常少量、短篇幅 pdf 的重点内容标注、数据提取预处理等场景,该方案简单高效,能够大幅提升人工文档审阅的效率。
到此这篇关于python实现pdf文本查找与高亮标注的两种实用方案的文章就介绍到这了,更多相关python pdf文本查找与高亮内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论