您应该能够使用pdfminer做到这一点,但这将需要深入研究pdfminer的内部结构以及有关pdf格式的知识(当然是wrt形式,但也需要了解pdf的内部结构,例如“字典”和“间接对象”) 。
该示例可能会为您提供帮助(我认为它仅适用于简单情况,没有嵌套字段等)。
import sys
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdftypes import resolve1
filename = sys.argv[1]
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)
编辑:忘记提及:如果您需要提供密码,请将其传递给 doc.initialize()