Ich arbeite an einem Python 3.4 Projekt, das fdfgen und pdftk verwendet, um ein pdf auszufüllen. Ich kann Textfelder ziemlich leicht ausfüllen. Das Ding, das ich nicht herausfinden kann, ist, wie man eine Kiste überprüft.Wie man Kästchen in einem PDF mit fdfgen in Python eincheckt
Hier ist der Teil meiner Python-Skript:
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'))
ich erfolgreich eine Liste von Tupeln erstellen können forge_fdf zugeführt werden, wobei das erste Element in dem Tupel dem Feldnamen zu sein, und der zweite der Text für das Feld, das ich hinzufügen möchte.
Was ich nicht herausfinden kann, wie man vorgeht, ist ein Kästchen anzukreuzen. Wenn ich pdftk dump_data_fields auf meinem pdf laufen, hier ist der Eintrag für das Kontrollkästchen zu überprüfen Ich versuche:
FieldType: Button
FieldName: Absolute Divorce
FieldNameAlt: Absolute Divorce
FieldFlags: 0
FieldJustification: Left
FieldStateOption: Off
FieldStateOption: On
Ich bin mir nicht sicher, wie a), um die FDF-Datei zu ändern, so dass sie die Checkbox angezeigt macht wie überprüft worden ist, und b), wie man diese Änderung tatsächlich mit fdfgen macht.