我想用Python和pymupdf在pdf文档中标记几个关键字。
代码如下(源代码:原码):
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 (文档)文档中描述的代码,这样它就可以对所有页面进行切片。
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")
不幸的是,它仍然只标记一个页面上的关键字。我需要更改什么,以便在所有页面上标记关键字?
发布于 2021-04-15 20:43:35
您的代码有两个主要问题:
否则,您对代码的理解似乎是很好的。
for page in doc.pages(1, 3, 1):
pass
如果要在页面上循环,则需要将突出显示代码放在页面循环中。此外,您从第2页开始,而不是从第1页开始,因为第1页由索引0表示。
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import fitz
doc = fitz.open("test.pdf")
text = "result"
# page = doc[0]
# for page in doc.pages(start, stop, step):
for page in doc.pages(0, 3, 1):
text_instances = page.searchFor(text)
for inst in text_instances:
highlight = page.addHighlightAnnot(inst)
highlight.setColors(colors='Red')
highlight.update()
doc.save("output.pdf")
https://stackoverflow.com/questions/67114704
复制相似问题