我正在尝试使用pdfminer以pdf格式提取已填写的内容。访问pdf的说明如下:
要以蓝色提取内容,我复制了this post的代码:
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdftypes import resolve1
filename = 'FRY15_1073757_20160630.PDF'
fp = open(filename, 'rb')
parser = PDFParser(fp)
doc = PDFDocument(parser)
fields = resolve1(doc.catalog['AcroForm'])['Fields']
for i in fields:
field = resolve1(i)
name, value = field.get('T'), field.get('V')
print '{0}: {1}'.format(name, value)
这没有按预期提取数据字段 - 没有打印任何内容。我在另一个pdf上尝试了相同的代码并且它有效,所以我怀疑失败可能与第一个pdf的安全设置有关,如下所示
对于代码工作的第二个pdf,安全设置显示所有操作的“允许”。我也尝试过使用pdfminer的pdf2txt.py功能(参见here),但原始pdf格式(我想要的)字段中的填写数据不在转换后的文本文件中;只转换了pdf的“平面”不可填写部分。有趣的是,如果我使用Adobe Reader的另存为文本将pdf转换为文本文件,则可转换文本文件中的可填充部分 。这就是我为解决失败的代码所做的工作。
知道如何直接从pdf表单中提取数据吗?感谢。