Python PDF模板未与pdftk正确合并数据

Python PDF模板未与pdftk正确合并数据,python,pdf,pdftk,xfdf,Python,Pdf,Pdftk,Xfdf,我正在使用pdftk编辑PDF模板 command = ("pdftk " + '"' + template + '"' + " fill_form " + '"' + pathUser + user['mail'] + ".xfdf" + '"' + " output " + '"' + pathUser + user['mail

我正在使用pdftk编辑PDF模板

        command = ("pdftk " + '"' +
               template + '"' +
               " fill_form " + '"' +
               pathUser + user['mail'] + ".xfdf" + '"' +
               " output " + '"' +
               pathUser + user['mail'] + ".pdf" + '"' +
               " need_appearances")
        command = command.replace('/', '\\')
        os.system(command)
首先,我将数据写入.xfdf文件

    for key, value in user.items():
        print(key, value)
        fields.append(u"""<field name="%s"><value>%s</value></field>""" % (key, value))
    tpl = u"""<?xml version="1.0" encoding="UTF-8"?>
            <xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
                <fields>
                    %s
                </fields>
            </xfdf>""" % "\n".join(fields)


    f = open(pathUser + user['mail'] + '.xfdf', 'wb')
    f.write(tpl.encode("utf-8"))
    f.close()
我正在写这些数据

    user['id'] = data['recommendations'][0]['role_in_team']['user']['id']
    user['ime'] = data['recommendations'][0]['role_in_team']['user']['first_name']
    user['prezime'] = data['recommendations'][0]['role_in_team']['user']['last_name']
    user['tim'] = data['recommendations'][0]['role_in_team']['team']['short_name']
    user['mail'] = data['recommendations'][0]['role_in_team']['user']['estudent_email']
    user['puno_ime'] = (data['recommendations'][0]['role_in_team']['user']['first_name'] + ' ' +
                        data['recommendations'][0]['role_in_team']['user']['last_name'])
                user['predavanja'] = predavanja
    user['radionice'] = radionice
    user['izlet'] = izlet
一个音符
predavanja
radionice
izlet
是列表。
我试过打印
tpl
,显示所有数据都正确添加到方案中。

结果发现问题在于变量的命名,因为它们与acroform PDF中的字段名不匹配。因此,解决方案是重命名代码中的变量以匹配字段名称。

导致此错误的可能原因有几个,可能是xfdf生成错误、pdf格式错误或pdftk有缺陷。发布实际的xfdf和pdf将有助于找到问题所在。我打开了
xfdf
文件,将扩展名替换为
.xml
,如果确实正确生成了xfdf,则打开了该文件。我猜问题出在pdf中数据的书写过程中。这是在这个hastebin链接上转换成
.xfdf
.xml
,我觉得xfdf很不错,所以我倾向于pdftk的问题。如果你在上报告并附上pdf,我很乐意为你提供帮助。
    user['id'] = data['recommendations'][0]['role_in_team']['user']['id']
    user['ime'] = data['recommendations'][0]['role_in_team']['user']['first_name']
    user['prezime'] = data['recommendations'][0]['role_in_team']['user']['last_name']
    user['tim'] = data['recommendations'][0]['role_in_team']['team']['short_name']
    user['mail'] = data['recommendations'][0]['role_in_team']['user']['estudent_email']
    user['puno_ime'] = (data['recommendations'][0]['role_in_team']['user']['first_name'] + ' ' +
                        data['recommendations'][0]['role_in_team']['user']['last_name'])
                user['predavanja'] = predavanja
    user['radionice'] = radionice
    user['izlet'] = izlet