【发布时间】:2019-06-04 15:08:48
【问题描述】:
我需要从数百个 PDF 表单中读取数据。这些表格都有所有的文本输入框,表格是不可编辑的。我一直在尝试使用 Python 和 PyPDF2 将这些表单读取到 CSV 文件中(因为最终目标是一个 excel 数据库。
我曾尝试使用 acrobats 导出为 csv 函数,但这非常慢,因为每个表单都有 4 个嵌入图像以纯文本形式导出。我有以下代码,
from PyPDF2 import PdfFileReader
infile = "FormSample.pdf"
pdf_reader = PdfFileReader(open(infile, "rb"))
with open('exportharvest.csv','w') as exportharvestcsv:
dictionary = pdf_reader.getFields(fileobj = exportharvestcsv)
textfields = pdf_reader.getFormTextFields()
dest = pdf_reader.getNamedDestinations()
print(dest)
上述代码的问题如下:getFields 命令仅获取表单中的~4 个数字签名字段(表单有~300 个条目)。有什么方法可以指示 python 查看所有字段吗?我知道文档中的字段名称,因为它们在导出为 pdf 时列出。
getFormTextFields() 返回 {}
的字典getNamedDestinations() 返回 {}
的字典感谢您的帮助。
【问题讨论】:
-
会不会是通过展平表单使表单字段不可编辑?扁平化使表单字段外观成为常规页面内容流的一部分并删除抽象字段。这可以解释你的观察。不幸的是,这也会使您难以提取内容,因为删除抽象表单字段会删除表单字段名称到 pdf 中表单字段值的简单映射。
标签: python pdf export-to-csv pypdf2 pdf-form