python pdfminer - KeyError'AcroForm'

时间:2017-12-14 20:37:46

标签: python keyerror pdfminer

我有一个获取附件文件名的脚本,如果ext表示pdf文件,它会通过以下代码运行它。但是我收到下面的KeyError。我找不到有关如何更正或排除故障的任何信息。我以前通过这个脚本成功运行了PDF表单,不知道为什么它没有按预期运行。

function setForegoundColour(r,g,b)
{
    var tempColor = new SolidColor;
    tempColor.rgb.red = r;
    tempColor.rgb.green = g;
    tempColor.rgb.blue = b;

    // set the foreground colour
    foregroundColor = tempColor;
}

setForegoundColour(255,0,0);

这是追溯:

 if ext == '.PDF' or ext == '.pdf':
      item_field_list = []
      item_number = str(random.randint(1000000, 9999999))
      #try:
      with tempfile.NamedTemporaryFile() as tmp:
           verify_item = 0
           tmp.write(part.get_payload(decode=True))
           parser = PDFParser(tmp)
           doc = PDFDocument(parser)
           fields = resolve1(doc.catalog['AcroForm'])['Fields']

当我执行Traceback (most recent call last): File "distributionitemimport.py", line 87, in <module> fields = resolve1(doc.catalog['AcroForm'])['Fields'] KeyError: 'AcroForm' 时,我得到以下内容:

print(doc.catalog)

1 个答案:

答案 0 :(得分:0)

问题是在您的pdf集合中,有些pdf没有AcroForm。首先,删除所有没有AcroForm的pdf

我建议创建一个新文件夹,并放入一个包含AcroForm的pdf文件并检查您的代码。会起作用