Simple & fast PDF generation for Python
Project description
→ come look at our good first issues
fpdf2
fpdf2
is a PDF creation library for Python:
from fpdf import FPDF
pdf = FPDF()
pdf.add_page()
pdf.set_font('helvetica', size=12)
pdf.cell(txt="hello world")
pdf.output("hello_world.pdf")
Go try it now online in a Jupyter notebook: or
Compared with other PDF libraries, fpdf2
is fast, versatile, easy to learn and to extend (example).
It is also entirely written in Python and has very few dependencies:
Pillow, defusedxml, & fontTools. It is a fork and the successor of PyFPDF
(cf. history).
Development status: this project is mature and actively maintained.
We are looking for contributing developers: if you want to get involved but don't know how, or would like to volunteer helping maintain this lib, open a discussion!
Installation Instructions
pip install fpdf2
To get the latest, unreleased, development version straight from the development branch of this repository:
pip install git+https://github.com/PyFPDF/fpdf2.git@master
Features
- Python 3.7+ support
- Unicode (UTF-8) TrueType font subset embedding
- Internal / external links
- Embedding images, including transparency and alpha channel
- Arbitrary path drawing and basic SVG import
- Embedding barcodes, charts & graphs, emojis, symbols & dingbats
- Cell / multi-cell / plaintext writing, with automatic page breaks, line break and text justification
- Choice of measurement unit, page format & margins. Optional page header and footer
- Basic conversion from HTML to PDF
- A templating system to render PDFs in batchs
- Images & links alternative descriptions, for accessibility
- Table of contents & document outline
- Document encryption & document signing
- Annotations, including text highlights, and file attachments
- Presentation mode with control over page display duration & transitions
- Optional basic Markdown-like styling:
**bold**, __italics__
- Can render mathematical equations & charts
- Usage examples with Django, Flask, streamlit, AWS lambdas... : Usage in web APIs
- 1000+ unit tests running under Linux & Windows, with
qpdf
-based PDF diffing, timing & memory usage checks, and a high code coverage
Our 350+ reference PDF test files, generated by fpdf2
, are validated using 3 different checkers:
Please show the value
Choosing a project dependency can be difficult. We need to ensure stability and maintainability of our projects. Surveys show that GitHub stars count play an important factor when assessing library quality.
⭐ Please give this repository a star. It takes seconds and will help your fellow developers! ⭐
Please share with the community
This library relies on community interactions. Please consider sharing a post about fpdf2
and the value it provides 😊
Documentation
- Documentation Home
- Tutorial in several languages: English - Deutsch - español - हिंदी - português - Русский - Italian - français - Ελληνικά - עברית
- Release notes: CHANGELOG.md
- A series of blog posts: fpdf2 tag @ ludochaordic
You can also have a look at the tests/
, they're great usage examples!
Developement
Please check the dedicated documentation page.
Contributors ✨
This library could only exist thanks to the dedication of many volunteers around the world:
This project follows the all-contributors specification (emoji key). Contributions of any kind welcome!
(screenshot from June 2021, click on the map above to access an up-to-date online version)
Community, related tools, alternative libraries
More about those in the documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fpdf2-2.6.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f3e2dd47e081f3b8ed7edb2505761589365b8ea4fa8496e0baaf564377a85fb |
|
MD5 | 61a868c47e806cb9e01f10e79ac82512 |
|
BLAKE2b-256 | dd9d247bf713f73dd0e845907855b2dbf024b369f5a71a3fe1e74c4a27236193 |