使用 pymupdf 进行切片
Sclicing with pymupdf
我想用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 (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")
不幸的是,它仍然只在一页上标记关键字。我需要更改什么才能在所有页面上标记关键字?
您的代码存在 2 个主要问题:
- 缩进
- 切片的开始是从零开始的
否则你对代码的理解似乎没问题。
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")
我想用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 (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")
不幸的是,它仍然只在一页上标记关键字。我需要更改什么才能在所有页面上标记关键字?
您的代码存在 2 个主要问题:
- 缩进
- 切片的开始是从零开始的
否则你对代码的理解似乎没问题。
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")