如何读取已填写PDF表单中的数据及关联字段名
提取PDF表单填写数据的解决方案
你用PyPDF3的方式有误,extractText()是提取页面普通文本,并非表单域的填写数据。要获取表单字段名及对应的值,直接调用PDF阅读器的getFields()方法即可,无需遍历页面。
试试这段代码:
from PyPDF3 import PdfFileReader # 打开PDF文件(用with语句自动管理文件关闭) with open('filename.pdf', 'rb') as pdf_file: pdf_reader = PdfFileReader(pdf_file) # 获取所有表单字段的字典数据 form_fields = pdf_reader.getFields() # 遍历输出字段名和对应填写值 for field_name, field_attrs in form_fields.items(): # /V 是表单字段值的键 field_value = field_attrs.get('/V') # 部分字段值可能以元组形式返回,需处理 if isinstance(field_value, tuple): field_value = field_value[0] print(f"字段名: {field_name}, 填写值: {field_value}")
- 核心逻辑:
getFields()会返回一个字典,键是表单字段的名称,值是包含字段各类属性的字典,其中/V键对应用户填写的内容。 - 用
with语句处理文件可以避免手动关闭文件的遗漏,更安全规范。
另外你提到的fillpdfs模块,其实它也能返回字段名和对应值,可能是之前的用法不对,示例代码如下:
from fillpdf import get_form_fields # 获取表单字段及值 form_data = get_form_fields('filename.pdf') for field_name, field_value in form_data.items(): print(f"{field_name}: {field_value}")
这样就能直接拿到你需要的字段名和填写数据了。
内容的提问来源于stack exchange,提问作者ihf
相关产品推荐
相关产品推荐

