You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PyMuPDF读取PDF中的文本框批注内容?

如何用PyMuPDF读取PDF中的文本框批注?

嘿,这个问题我熟!你之前用getText()提取的是页面的正文内容,但文本框批注属于PDF的**注释(annotations)**模块,得专门针对注释对象来处理,用PyMuPDF完全能实现,给你捋清楚步骤和代码:

核心思路

PDF里的文本框批注本质是「注释对象」,每个页面的annots()方法会返回该页所有注释的列表,我们只需要筛选出文本类的注释,再提取其中的内容即可。

完整代码示例

结合你原来的代码修改,直接就能用:

import fitz  # 导入PyMuPDF库

myfile = r"C:\users\xxx\desktop\testpdf1.pdf" 
doc = fitz.open(myfile)
page = doc[1]  # 注意:PyMuPDF的页面索引从0开始,这里取第二页

# 遍历当前页面的所有注释
for annot in page.annots():
    # 筛选文本框批注和自由文本批注(两种最常见的文本类批注)
    if annot.type in (fitz.PDF_ANNOT_TEXT, fitz.PDF_ANNOT_FREETEXT):
        # 提取批注的文本内容
        annot_content = annot.get_text()
        # 也可以通过annot.info["content"]获取内容,效果一致
        print(f"找到文本批注:{annot_content}")
        # 如果需要批注的位置信息,用annot.rect可以拿到对应的矩形坐标
        print(f"批注位置:{annot.rect}\n")

# 记得关闭文档
doc.close()

补充说明

  • fitz.PDF_ANNOT_TEXT:这类是带弹出框的传统文本批注,通常需要点击才会显示完整内容;
  • fitz.PDF_ANNOT_FREETEXT:这类是直接显示在页面上的自由文本框,就是你能直接看到的文本框批注;
  • 如果你的PDF里还有其他特殊类型的文本批注(比如带文本的图章),可以根据annot.type的其他枚举值来扩展判断条件,PyMuPDF的官方文档里有所有注释类型的枚举说明。

内容的提问来源于stack exchange,提问作者Easynow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:31:42