Other utilities

PyPDFForm offers additional utilities similar to other PDF libraries.

This section of the documentation uses this PDF as an example.

Blank PDFs

Use the BlankPage class with PdfWrapper to create new blank PDFs. The following example generates a PDF with a single blank page:

from PyPDFForm import BlankPage, PdfWrapper

blank_pdf = PdfWrapper(BlankPage())

blank_pdf.write("output.pdf")

By default, BlankPage generates a letter-size (612 x 792 points or 8.5 x 11 inches) blank PDF page. To change the dimensions, specify width and height (in points) when you instantiate the object:

from PyPDFForm import BlankPage, PdfWrapper

blank_pdf = PdfWrapper(BlankPage(width=595.35, height=841.995)) # A4 size

blank_pdf.write("output.pdf")

To create a blank PDF with multiple pages, multiply the BlankPage object by the number of pages you need:

from PyPDFForm import BlankPage, PdfWrapper

blank_pdf = PdfWrapper(BlankPage() * 3) # 3 pages of letter size

blank_pdf.write("output.pdf")

Extract pages

The PdfWrapper object has a .pages attribute, which is a list of PdfWrapper objects representing individual pages:

from PyPDFForm import PdfWrapper

first_page = PdfWrapper("sample_template.pdf").pages[0]
first_page.fill(
    {
        "test": "test_1",
        "check": True,
    },
)

first_page.write("output.pdf")

Merge multiple PDFs

You can merge multiple PDF files by adding their PdfWrapper objects. For example, to merge this PDF and this PDF:

from PyPDFForm import PdfWrapper

pdf_one = PdfWrapper("dummy.pdf")
pdf_two = PdfWrapper("sample_template.pdf")
merged = pdf_one + pdf_two

merged.write("output.pdf")

To reorganize pages:

from PyPDFForm import PdfWrapper

pdf_one = PdfWrapper("dummy.pdf")
pdf_two = PdfWrapper("sample_template.pdf")
merged = pdf_two.pages[0] + pdf_one + pdf_two.pages[1:]

merged.write("output.pdf")

Change PDF version

PyPDFForm allows you to modify the PDF version up to 2.0:

from PyPDFForm import PdfWrapper

new_version = PdfWrapper("sample_template.pdf").change_version("2.0")
new_version.write("output.pdf")