-> come look at our good first issues
fpdf2 is a minimalist PDF creation library for Python:
from fpdf import FPDF
document = FPDF()
document.add_page()
document.set_font('helvetica', size=12)
document.cell(txt="hello world")
document.output("hello_world.pdf")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!
pip install fpdf2To 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 https://github.com/PyFPDF/fpdf2.git
cd fpdf2
python setup.py 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
 - Images & links alternative descriptions
 - Table of contents & document outline
 - Optional basic Markdown-like styling: 
**bold**, __italics__, --underlined-- - Clean error handling through exceptions
 - Only one dependency so far: Pillow
 - Unit tests with 
qpdf-based PDF diffing 
We validate all our PDF samples using 3 different checkers:
- Documentation Home
 - Tutorial (Spanish translation available)
 - Release notes: CHANGELOG.md
 
You can also have a look at the tests/, they're great usage examples!
Please check the documentation page dedicated to development.
This library was only possible thanks to the dedication of the following people: CONTRIBUTORS.md.
For alternatives, check out this detailed list of PDF-related Python libs by Patrick Maupin. There is also pikepdf, PyFPDF2 & WeasyPrint.


