python - 使用 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 (文档)文档中的描述更改代码,以便对所有页面进行切片。
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")
不幸的是,它仍然只在一页上标记关键字。我需要更改什么,以便在所有页面上标记关键字?
解决方案
您的代码有两个主要问题:
- 缩进
- 切片的开始是从零开始的
否则,您对代码的理解似乎很好。
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")
推荐阅读
- objective-c - 存储字符串值时如何无条件地解决BridgeFromObjectiveC崩溃?(WKInterfaceDevice.current().name)
- html - 通过 CSS 在透明背景上着色黑色
- vim - 每次启动时都应获取用户定义的命令 - neovim
- python - 在 Python 中使用 GUI 解决从插入值生成自定义数字的问题
- c# - 使用 C# 方法重载的默认值
- encryption - F#中的频率密码
- python - 计算数据均值时处理异常值的好方法是什么?
- php - 如何使用 PHP 从 HTML 中的 SQL LONGBLOB 中以任何格式显示图像
- lotus-notes - Lotusscript MIME 电子邮件
- docker-compose - “enablePrettyUrl”不适用于标准 docker-compose 配置