How To Generate PDF Files Using FPDF In Python

Posted By : Nikhil Verma | 29-Sep-2021

 Generate PDF Files Using FPDF In Python


What is FPDF?

PYFPDF is a library in Python, it is used for pdf file document generation. If we talk about the feature then we can customize like we can modify the page format, margin, unit, automatic line break and more.


How to install the FPDF library?

pip install pypdf2

By using this command on the terminal you can install this library on your system.


How Developers Can Use This Library?

Step-1: Create django project:

django-admin startproject generate_pdf


Step-2: create django app:

python startapp pdf_app


Step-3: Install FPDF library

pip install fpdf2


Step-4: Create a template directory

mkdir template


Step-5: Set the path of template director in file


Step-6: Create html file under the template directory

touch index.html


Step-7: Inside of html file

<!DOCTYPE html>

<html lang="en">


    <meta charset="UTF-8">

    <title>PDF Report</title>

    <link href="[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">



    <div class="container shadow"

         style="max-width: 640px; margin: auto; margin-top: 2em; padding: 2em">

        <h4>To generate a report, please click the button below:</h4>

        <a class="btn btn-success" href="/report">Report</a>





Step-8: Create Two method inside of app file

from django.shortcuts import render

from fpdf import FPDF

from django.http import FileResponse

def index(request):

    context = {}

    return render(request, "index.html", context = context)

def report(request):

    sales = [

        {"item": "Speaker", "amount": "$120,00"},

        {"item": "UPS", "amount": "$10,00"},

        {"item": "PS5", "amount": "$1 000 000,00"},


    pdf = FPDF('L', 'mm', 'A4')


    pdf.set_font('courier', 'B', 16)

    pdf.cell(40, 10, 'Customer Order Items:',0,1)

    pdf.cell(40, 10, '',0,1)

    pdf.set_font('courier', '', 12)

    pdf.cell(200, 8, f"{'Item'.ljust(50)} {'Amount'.rjust(20)}", 1, 1)

    pdf.line(10, 30, 150, 30)

    pdf.line(10, 38, 150, 38)

    for line in sales:

        pdf.cell(200, 8, f"{line['item'].ljust(50)} {line['amount'].rjust(20)}", 0, 1)

    pdf.output('report.pdf', 'F')

    return FileResponse(open('report.pdf', 'rb'), as_attachment=True, content_type='application/pdf')




Step-9: Set the url for the method in Application file

Inside of file

from django.urls import path

from . import views

urlpatterns = [

    path('', views.index),




Step-10: Include this file in project file

from django.urls import path,include

path('', include('app.urls'))

Step-11: Execute the program

python runserver

Click on ->

Click on -> Report 


If you follow the above steps, you will get a pdf file. This step makes it easy to generate pdf documents.



We, at Oodles, provide complete web application development services with a focus on solving complex business problems through next-gen technologies. Our custom ERP development services enable enterprises to efficiently manage their mission-critical workflows across web and mobile platforms. To learn more, drop us a line at [email protected].





Please remove URL from text

Comment is required

Sending message..
Connect with us