我正在开发一个使用 fdfgen 和 pdftk 填写 pdf 的 Python 3.4 项目。我可以很容易地填写文本字段。我无法弄清楚的是如何选中一个框。
这是我的python脚本的一部分:
fields = generate_vs300_field_list(answers_dict) # Returns list of tuples of fields and text to be added to pdf
fdf = forge_fdf("", fields, [], [], [])
logging.debug('Called forge_fdf function. About to open fdf_file.')
fdf_file = open(os.path.join(destination_dir, 'vs300.fdf'), 'wb')
logging.debug('Opened fdf_file. About to write to it.')
fdf_file.write(fdf)
fdf_file.close()
logging.debug('Wrote to fdf_file and closed it.')
cmd = 'pdftk "{0}" fill_form "{1}" output "{2}" dont_ask'.format(
'./styles/vs300.pdf',
os.path.join(destination_dir, 'vs300.fdf'),
os.path.join(destination_dir, 'vs300.pdf')
)
logging.debug('About to send this command to pdftk: ' + cmd)
os.system(cmd)
logging.debug('Command sent. Removing temporary fdf file.')
os.remove(os.path.join(destination_dir, 'vs300.fdf'))
我可以成功地创建要馈送到 forge_fdf 的元组列表,元组中的第一项是字段名称,第二项是我要添加的字段的文本。
我不知道该怎么做是选中一个框。如果我在我的 pdf 上运行 pdftk dump_data_fields,这是我要检查的复选框的条目:
FieldType: Button
FieldName: Absolute Divorce
FieldNameAlt: Absolute Divorce
FieldFlags: 0
FieldJustification: Left
FieldStateOption: Off
FieldStateOption: On
我不知道如何 a) 更改 fdf 文件以使复选框显示为已被选中,以及 b) 如何使用 fdfgen 实际进行更改。