python在PDF文件指定的文字下劃線
效果展示
原始文件

劃線后文件

代碼實現(xiàn)
# 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, '測試文檔')
本文來自博客園,僅供參考學習,如有不當之處還望不吝賜教,不勝感激!轉(zhuǎn)載請注明原文鏈接:http://www.rzrgm.cn/rong-z/p/17877154.html
作者:cnblogs用戶
浙公網(wǎng)安備 33010602011771號