python在PDF文件指定的文字下划线
效果展示
原始文件
划线后文件
代码实现
# coding:utf-8
import os
import fitz # PyMuPDF
def pdf_underline_text(pdf_path, search_text, output_path=None):
"""
在PDF文件中指定的文字下划线,或高亮显示
:param pdf_path: PDF文件路径
:param search_text: 需划线的文字
:param output_path: 输出路径,默认none
:return:
"""
# 拼接特殊字符\n,满足换行时字符串无法匹配的情况
search_texts = [f'{search_text[:i]}\n{search_text[i:]}' for i in range(1, len(search_text))]
search_texts.insert(0, search_text)
if not output_path:
output_path = f'{os.path.splitext(pdf_path)[0]}_注释{os.path.splitext(pdf_path)[1]}'
# 打开 PDF 文件
pdf_document = fitz.open(pdf_path)
for page_number in range(pdf_document.page_count):
page = pdf_document[page_number]
# 在页面上搜索文本
for text in search_texts:
text_instances = page.search_for(text)
# 在找到的文本下划线
for inst in text_instances:
# 添加下划线时可以适当增加bottom的值,避免线条贴着文字显示
inst[3] += 5
page.add_underline_annot(inst) # 文本下划线
# page.add_highlight_annot(inst) # 文本高亮
# 保存修改后的 PDF
pdf_document.save(output_path)
pdf_document.close()
f_p = r"C:\Users\abc\Desktop\合同.pdf"
pdf_underline_text(f_p, '测试文档')
本文来自博客园,仅供参考学习,如有不当之处还望不吝赐教,不胜感激!转载请注明原文链接:https://www.cnblogs.com/rong-z/p/17877154.html
作者:cnblogs用户
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2018-12-05 Django项目中自定义分页器