Skip to content
Go to file
This branch is 195 commits ahead of reingart:master.


Failed to load latest commit information.
Latest commit message
Commit time

build status Pypi latest version License: LGPL v3 codecov

Pull Requests Welcome first-timers-only Friendly -> come look at our good first issues


fpdf2 logo

fpdf2 is a minimalist PDF creation library for Python:

from fpdf import FPDF

document = FPDF()
document.set_font('helvetica', size=12)
document.cell(w=0, txt="hello world")

It is a fork and the successor of PyFPDF. Compared with other PDF libraries, fpdf2 is simple, small and versatile, with advanced capabilities, and is easy to learn, extend and maintain.

Looking for Developer Help!

Installation Instructions:

pip install fpdf2

To get the latest development version:

# Linux only:
sudo apt-get install libjpeg-dev libpython-dev zlib1g-dev # libpython3.3-dev #(if necessary)

# Linux and Windows:
git clone
cd fpdf2
python install


  • Python 3.6+ support
  • Unicode (UTF-8) TrueType font subset embedding
  • Internal/External Links
  • PNG, GIF and JPG support (including transparency and alpha channel)
  • Shape, Line Drawing
  • Generate Code 39 & Interleaved 2 of 5 barcodes
  • Cell/Multi-cell/Plaintext writing, Automatic page breaks
  • Basic conversion from HTML to PDF
  • Clean error handling through exceptions
  • Only one dependency so far: Pillow
  • Unit tests with qpdf-based PDF diffing

Release notes:


You can also have a look at the tests/, they're great usage examples!


Please check the docs page dedicated to development.

This library was only possible thanks to the dedication of the following people:

Lets try to improve the Code Coverage statistic so that we can safely transition to external font and image libraries, and more...

Other libraries

For alternatives, check out this detailed list of PDF-related Python libs by Patrick Maupin. There is also pikepdf, PyFPDF2 & WeasyPrint.