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

如何用Python提取PDF文件中的单选按钮/复选框选中状态信息?

如何用Python提取PDF中的单选按钮/复选框选中状态?

我需要获取PDF文档中的单选按钮和复选框的选中状态信息,尝试过pdfplumber和PyPDF2模块但没找到可行方案。目前只能用以下代码提取文本,无法得知哪个单选/复选框处于选中状态:

import pdfplumber
import os
import sys

if __name__ == '__main__':
  path = os.path.abspath(os.path.dirname(sys.argv[0])) 
  fn = os.path.join(path, "input.pdf")
  pdf = pdfplumber.open(fn)
  page = pdf.pages[0]
  text = page.extract_text()

解决方案:使用PyMuPDF(fitz)提取表单字段状态

PyMuPDF对PDF可编辑表单的元素支持更完善,能直接获取单选按钮、复选框的选中状态,具体步骤如下:

  1. 安装依赖库:
pip install pymupdf
  1. 提取表单字段状态的代码示例:
import fitz
import os
import sys

if __name__ == '__main__':
    path = os.path.abspath(os.path.dirname(sys.argv[0])) 
    fn = os.path.join(path, "input.pdf")
    
    # 打开PDF文档
    doc = fitz.open(fn)
    
    # 遍历所有页面的表单字段
    for page_num in range(len(doc)):
        page = doc[page_num]
        # 获取当前页面的所有交互表单元素
        fields = page.widgets()
        
        if fields:
            print(f"--- 第 {page_num+1} 页表单字段 ---")
            for field in fields:
                # 筛选单选按钮和复选框类型
                if field.field_type in (fitz.PDF_WIDGET_TYPE_RADIOBUTTON, fitz.PDF_WIDGET_TYPE_CHECKBOX):
                    # 提取关键信息
                    field_type = "单选按钮" if field.field_type == fitz.PDF_WIDGET_TYPE_RADIOBUTTON else "复选框"
                    field_label = field.field_label if field.field_label else "无标签"
                    is_checked = "已选中" if field.field_value == 1 else "未选中"
                    
                    print(f"类型: {field_type}")
                    print(f"标签: {field_label}")
                    print(f"选中状态: {is_checked}")
                    print("---")
  1. 关键说明:
  • page.widgets():获取当前页面所有可交互的表单元素
  • 字段类型判断:通过fitz.PDF_WIDGET_TYPE_RADIOBUTTON和fitz.PDF_WIDGET_TYPE_CHECKBOX区分单选/复选框
  • 选中状态标识:field_value为1表示选中,0表示未选中
  • 标签匹配:field_label对应表单元素的显示文本,可直接关联到文档内容

特殊情况处理:如果目标PDF是扫描生成的图片型PDF(非可编辑表单),上述方法无效,需要结合OCR工具(如pytesseract)识别页面中的勾选图形(如√、填充块)来判断选中状态。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:50:51