如何用Python补充代码在PDF中高亮数字(含现有高亮代码)
修改代码实现PDF中指定单词+所有数字高亮
你可以通过PyMuPDF(fitz)的正则搜索功能匹配所有数字,以下是修改后的完整代码:
import fitz # 打开PDF文件 my_pdf = fitz.open("AR_Finland_2021.pdf") # 需要高亮的指定单词 target_words = ["blood", "aid"] # 匹配所有连续数字的正则表达式 number_pattern = r'\d+' # 遍历每一页处理高亮 for page in my_pdf: # 收集所有指定单词的匹配位置 match_positions = [] for word in target_words: match_positions.extend(page.search_for(word)) # 收集所有数字的匹配位置,启用正则搜索模式 match_positions.extend(page.search_for(number_pattern, flags=fitz.TEXT_SEARCH_REGEX)) # 对所有匹配位置添加高亮注释 for pos in match_positions: highlight = page.add_highlight_annot(pos) highlight.update() # 保存处理后的PDF my_pdf.save("highlighted_text.pdf")
关键修改说明:
- 正则匹配数字:用
r'\d+'作为匹配规则,\d匹配单个数字,+表示匹配一个或多个连续数字,覆盖整数、多位数场景。 - 启用正则搜索:调用
search_for时传入flags=fitz.TEXT_SEARCH_REGEX,让PyMuPDF按正则表达式解析搜索内容。 - 优化代码结构:把指定单词存入列表批量处理,比单独定义变量更简洁易维护。
内容的提问来源于stack exchange,提问作者CelloRibeiro
相关产品推荐
相关产品推荐

