如何使用PyMuPDF区分PDF重复字段并填充不同值
解决PyMuPDF为PDF重复字段填充不同值的问题
你的现有代码会给所有找到的字段填充固定的"X",要实现不同页的重复字段填不同值,核心是按页码对应目标值来处理,同时注意你代码里有个变量名错误(pagina应该是page,否则会触发报错)。
具体修改方案:
- 先定义一个和页码对应的填充值列表,列表索引对应PDF的页码(PyMuPDF中页码从0开始),按需设置每页要填充的内容;
- 循环遍历每页时,根据当前页码取出对应的填充值,再插入到目标字段位置。
修改后的完整代码:
pdf = fitz.open(document) # 定义每页对应的填充值,索引0对应第1页,索引1对应第2页,按需调整内容 page_values = ["X", ""] # 示例:第1页填X,第2页留空 for page_num in range(len(pdf)): page = pdf.load_page(page_num) # 修正变量名错误:pagina -> page text = page.get_text("text") target_value = page_values[page_num] # 获取当前页要填充的值 areas = page.search_for("( ) I do not have tax residency outside Brazil.") for area in areas: # 仅当目标值不为空时插入,避免空字符占位 if target_value: page.insert_text((area.x0 + 1.7, area.y0 + 9.5), target_value, fontsize=9, color=(0, 0, 0)) pdf.save(f"{local_download}\\{file_name_to_save}") pdf.close()
如果需要第1页留空、第2页填X,只需把page_values改成["", "X"]即可;后续若有更多页,继续在列表中添加对应页码的填充值就行。
内容的提问来源于stack exchange,提问作者Fábio Mattes
相关产品推荐
相关产品推荐

