我有一个获取附件文件名的脚本,如果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)
答案 0 :(得分:0)
问题是在您的pdf集合中,有些pdf没有AcroForm。首先,删除所有没有AcroForm的pdf
我建议创建一个新文件夹,并放入一个包含AcroForm的pdf文件并检查您的代码。会起作用