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")
This is a fork of fpdf2 which contains some changes needed for integration
in reportbro-lib, a reporting framework to generate pdf and xlsx
reports based on report templates. The report template is created visually with a Javascript plugin.
Changes include a setting for encode_error_handling
, image alignment options and an optimized method
to split text into lines.
fpdf2
itself is a fork and the successor of PyFPDF
(cf. history).
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 & svg.path.
Installation Instructions
pip install reportbro-fpdf2
To get the latest, unreleased, development version straight from the development branch of this repository:
pip install git+https://github.com/jobsta/fpdf2.git@master
Features
- Python 3.6+ 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 signing
- Annotations, including text highlights
- Presentation mode with control over page display duration & transitions
- Unit tests with
qpdf
-based PDF diffing and a high code coverage - Optional basic Markdown-like styling:
**bold**, __italics__
- Can render mathematical equations & charts
- Usage examples with Django, Flask, streamlit, AWS lambdas... : Usage in web APIs
Our 300+ reference PDF test files, generated by fpdf2
, are validated using 3 different checkers:
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
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 reportbro_fpdf2-0.9.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afa9b672796f162ec522136de4a59553824c954d23e905716f3d883f6c3c0ad3 |
|
MD5 | 4279b8415250e94dca6e37cf79ac4e6a |
|
BLAKE2b-256 | d4fa67a2d30f4061f0e83ca6d6463a3d8d88598a973146a269550b1fd0f08a1e |