-> come look at our good first issues
fpdf2
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!
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 https://github.com/PyFPDF/fpdf2.git
cd fpdf2
python setup.py install
Features:
- 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: CHANGELOG.md
Documentation:
- Documentation Home
- Tutorial (Spanish translation available)
- Reference Manual
You can also have a look at the tests/
, they're great usage examples!
Developers:
Please check the docs page dedicated to development.
This library was only possible thanks to the dedication of the following people: CONTRIBUTORS.md.
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
.