How to Generate PDF Forms in Python

Updated September 11, 2023

1. Introduction

In the world of programming and document automation, Python has emerged as a powerful and versatile language, offering a myriad of solutions for developers to create efficient and dynamic workflows. One such indispensable task is generating PDF documents from templates, a process that can be seamlessly accomplished using Python libraries.

By using IronPDF for Python, developers can effortlessly create customized and professional PDF files, tailored to specific needs. Whether it's generating invoices, reports, certificates, or any other structured document, the ability to automate the PDF generation process using Python and templates streamlines workflows, saves time, and ensures consistent and polished outputs, ultimately enhancing productivity and user experience.

In this article we will use IronPDF for Python to create simple PDF documents from templates.

2. IronPDF for Python

IronPDF is a powerful Python library that revolutionizes the way developers interact with PDF documents. Designed to simplify the creation, editing, and manipulation of PDF files, IronPDF empowers Python programmers to effortlessly integrate sophisticated PDF functionalities into their applications. Whether it's generating PDFs from scratch, converting HTML content into high-quality PDFs, or merging, splitting, and editing existing PDFs, IronPDF's comprehensive set of tools and APIs offer an intuitive and efficient solution. With its user-friendly interface and extensive documentation, IronPDF opens up a world of possibilities for developers seeking to harness the full potential of PDFs in their Python projects, making it an invaluable asset in the realm of document management and automation.

3. Prerequisites

Generating a PDF from a template in Python requires the following prerequisites to be in place:

  1. Python Installation: Before proceeding, ensure that you have Python installed on your system. The IronPDF library is compatible with Python 3.0 or above versions, so make sure you have a compatible Python installation.
  2. .NET 6.0 SDK: The .NET 6.0 SDK is a prerequisite for utilizing the IronPDF library in Python. IronPDF is built on top of the .NET framework, which provides the underlying capabilities required for PDF generation and manipulation. So .NET 6.0 SDK must be installed to use IronPDF in Python.
  3. IronPDF Library: To install the IronPDF library, use pip, the Python package manager. Open your command-line interface and execute the following command:

     pip install ironpdf
  4. Integrated Development Environment (IDE): While not strictly necessary, using an IDE can greatly enhance your development experience. It offers features like code completion, debugging, and a more streamlined workflow. One popular IDE for Python development is PyCharm. You can download and install PyCharm from the JetBrains website at

4. Creating a New Python Project

Here are the steps to create a new Python Project in PyCharm.

  1. To create a new python project open PyCharm, go to "File" in the top menu and click on "New Project".

    How to Generate a PDF File From Template in Python: Figure 1

  2. A new window will appear where you can specify the project's environment and location. After selecting the environment click on the Create button.

    How to Generate a PDF File From Template in Python: Figure 2

  3. Just like that our Python project is created and ready to use.

5. Installing IronPDF

To install IronPDF just open the terminal and run the following command pip install ironpdf and press enter. The terminal output should look like this.

How to Generate a PDF File From Template in Python: Figure 3

6. Generate PDF files from Template using IronPDF

In this section, we will see how to generate PDF documents from HTML templates. Here we will use HTML templates and input data from the console to create PDF files.

Firstly, we need to import some dependencies for creating PDF files.

from ironpdf import ChromePdfRenderer
from jinja2 import Template

Next, we will declare renderer as a ChromePdfRenderer object and use it to render HTML templates.

renderer = ChromePdfRenderer()

Now, let's create our HTML template document so that we can use it over and over again to create PDF files. Just create a new variable and populate it with HTML content containing braces at the start and the end.

html_template = """
<!DOCTYPE html>
    <title>{{ title }}</title>
    <h1>{{ title }}</h1>
        Hello, {{ name }}! This is a sample PDF generated from a template using IronPDF for Python.
        Your age is {{ age }} and your occupation is {{ occupation }}.

Now that our design template is ready, we need to write code that will take input from the user and then store it into the dictionary.

title = input("Enter the title: ")
name = input("Enter your name: ")
age = input("Enter your age: ")
occupation = input("Enter your occupation: ")

data = {
    "title": title,
    "name": name,
    "age": age,
    "occupation": occupation

Further, we will write code to add our input into the template document and render HTML templates using the IronPDF renderer object that we created earlier. At the end, we will save the PDF file using the SaveAs method.

template = Template(html_template)
html_content = template.render(**data)
pdf = renderer.RenderHtmlAsPdf(html_content)

The code to create PDF files dynamically is completed. Let's run the code to see the output.

6.1. Output Example 1

Once we run the code it will ask for the following inputs from the user.

How to Generate a PDF File From Template in Python: Figure 4

Just enter them one by one and press enter after each input. Once all the four inputs are entered, it will generate a PDF file.

How to Generate a PDF File From Template in Python: Figure 5

6.2. Output Example 2

Now we will rerun the program and try different inputs.

How to Generate a PDF File From Template in Python: Figure 6

As you can see below, our output file format is the same, but it is updated with our new inputs.

How to Generate a PDF File From Template in Python: Figure 7

For more information on how to create, modify and read PDF in Python using IronPDF please visit the documentation page.

7. Conclusion

In the world of programming and document automation, Python's utilization of the IronPDF library for rendering PDFs documents from templates has revolutionized document management and workflow efficiency. This powerful combination empowers developers to effortlessly create tailored PDF files, such as invoices, reports, and certificates, enhancing productivity and user experience. The seamless integration of IronPDF's comprehensive tools and APIs within Python projects enables developers to handle PDF generation, editing, and manipulation tasks with ease, streamlining the development process and ensuring consistent, polished outputs. Python's versatility, coupled with IronPDF's capabilities, makes this dynamic duo an indispensable asset for any developer seeking efficient and automated PDF document solutions. Also, we can use the same technique to create PDF from CSV file by just editing your program files, in this case Python file.

As you can see the output files are watermarked, you can easily remove them by purchasing a license. The $749 Lite package comes with a perpetual license, a 30-day money-back guarantee, a year of software support, and upgrade possibilities. IronPDF also offers a free trial license.

How to Convert Image to PDF in Python
How to Generate PDF Forms in Python

Ready to get started? Version: 2024.7 just released

Free pip Install View Licenses >