【发布时间】:2021-04-15 19:10:27
【问题描述】:
我想使用 Python 和 pymupdf 在 pdf 文档中标记几个关键字。
代码如下(来源:original code):
import fitz
doc = fitz.open("test.pdf")
page = doc[0]
text = "result"
text_instances = page.searchFor(text)
for inst in text_instances:
highlight = page.addHighlightAnnot(inst)
highlight.setColors(colors='Red')
highlight.update()
doc.save("output.pdf")
但是,文本只被标记在一页上。我尝试按照 pymupdf (documentation) 文档中的说明更改代码,以便对所有页面进行切片。
import fitz
doc = fitz.open("test.pdf")
for page in doc.pages(1, 3, 1):
pass
text = "result"
text_instances = page.searchFor(text)
for inst in text_instances:
highlight = page.addHighlightAnnot(inst)
highlight.setColors(colors='Red')
highlight.update()
doc.save("output.pdf")
不幸的是,它仍然只在一页上标记关键字。我需要更改什么,以便在所有页面上标记关键字?
【问题讨论】:
-
你的缩进是错误的。目前,保存发生在循环期间。这意味着 output.pdf 将被最后一个循环覆盖。
-
@Alan 我更改了
pass的缩进,因为这个缩进是错误的。你的意思是这个缩进还是我在缩进上犯了另一个错误? -
doc.save("output.pdf") 是
inst循环的一部分 -
@Alan 你说得对,我在上传问题时也错过了那个。但是,它仍然无法正常工作。