-> 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(w=0, 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 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 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
- 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
.