Reputation: 15
I'm trying to fill pdf form using pypdf2 library and here is my code below, i have tried using the example below but no luck yet.
import PyPDF2
# Open the PDF form
pdf_file = open('Update Form - Final fill.pdf', 'rb')
pdf_reader = PyPDF2.PdfReader(pdf_file)
print(pdf_reader)
pdf_writer = PyPDF2.PdfWriter()
# Loop through each page of the PDF form
for page_num in range (len(pdf_reader.pages)):
page = pdf_reader.pages(page_num)
# Fill out the form fields
if page.get('/Annots'):
for annot in page['/Annots']:
if annot.get('/T'):
key = annot.get('/T')[1:-1]
if key == 'date':
annot.update({
'/V': '(Your date)'
})
elif key == 'form#':
annot.update({
'/V': '(form number)'
})
elif key == 'handler':
annot.update({
'/V': '(our handler)'
})
pdf_writer.addPage(page)
# Save the filled-out PDF form
filled_pdf = open('filled_form.pdf', 'wb')
pdf_writer.write(filled_pdf)
# Close the PDF files
pdf_file.close()
filled_pdf.close()
and i get this error
<PyPDF2._reader.PdfReader object at 0x0000019C93082650>
Traceback (most recent call last):
File "c:\Users\alkad\OneDrive\Desktop\Test Python\TestPython.py", line 11, in <module>
page = pdf_reader.pages(page_num)
^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '_VirtualList' object is not callable
Any help ?
wanted to fill the pdf and save it.
Upvotes: 0
Views: 1641
Reputation: 136845
As @Jorj McKie pointed out, you need to use square brackets:
pdf_reader.pages[page_num]
Upvotes: 1