我正在做一个Python3.4项目,它使用fdfgen和pdftk来填写pdf。我可以很容易地填写文本字段。我搞不懂的是怎么勾选一个方框。
下面是我的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实际执行此更改。
发布于 2016-07-29 00:28:03
复选框字段通过fdf_data_strings而不是fdfgen通过fdf_data_names变量。您还应该检查PDF本身,以查看复选框用于其"on“触发器。
然后,您调用forge_fdf将如下所示:
forge_fdf("", fields, data_names)https://stackoverflow.com/questions/36140392
复制相似问题