I have a simple script that should fill AcroForms inside a PDF file.
import fitz # PyMuPDF
def fill_pdf_form(input_pdf, output_pdf, data):
doc = fitz.open(input_pdf)
for page_num in range(len(doc)):
page = doc.load_page(page_num)
for widget in page.widgets():
field_name = widget.field_name
print("fieldName: ", field_name)
if field_name in data:
widget.field_value = data[field_name]
print("fieldValue1: ", data[field_name])
print("fieldValue2: ", widget.field_value)
doc.save(output_pdf, use_objstms=1)
doc.close()
if __name__ == "__main__":
input_pdf = "file.pdf"
output_pdf = "file_filled.pdf"
data = {
"field_01": "123456 _ggtl",
"field_multiline_01": "lorem Ipsumnnext linenagain a line",
}
fill_pdf_form(input_pdf, output_pdf, data)
print(f"success: {output_pdf}")
fieldValue1 and fieldValue2 are OK on output line. But the saved PDF has no values in the form fields.
What do you have to do to ensure that the set values are included in the output PDF?