/fpdf2

Simple PDF generation for Python

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

build status Pypi latest version License: LGPL v3 codecov security: bandit Downloads per month

Discussions Pull Requests Welcome first-timers-only Friendly -> come look at our good first issues

fpdf2

fpdf2 logo

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")

It 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 writen in Python and has very few dependencies: Pillow, defusedxml & svg.path.

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

Our 300+ reference PDF test files, generated by fpdf2, are validated using 3 different checkers:

QPDF logo PDF Checker logo VeraPDF logo

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 😊

GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars

Documentation

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:


Mariano Reingart

πŸ’»

David Ankin

πŸ› πŸ’» πŸ“– 🚧 πŸ’¬ πŸ‘€ ⚠️

Alex Pavlovich

πŸ› πŸ’» πŸ“– πŸ’¬ πŸ‘€ ⚠️

Lucas Cimon

πŸ“ πŸ’» πŸ“– πŸš‡ 🚧 πŸ’¬

Miroslav Ε edivΓ½

πŸ’» ⚠️

Florian Bernhart

πŸ’» ⚠️

Edwood Ocasio

πŸ’» ⚠️

Marcelo Duarte

πŸ’»

Roman Kharin

πŸ’» πŸ€”

Christopher Frost

πŸ› πŸ’»

Michael Kalbermatten

πŸ› πŸ’»

Yanone

πŸ’»

Leo Zhu

πŸ’»

Abishek Goda

πŸ’»

Arthur Moore

πŸ’» ⚠️ πŸ›

Bogdan Cuza

πŸ’»

Craig Hobbs

πŸ’»

xitrushiy

πŸ› πŸ’»

JosΓ© L. Redrejo RodrΓ­guez

πŸ’»

JΓΌrgen Gmach

πŸ’»

Larivact

πŸ’»

Leonel CΓ’mara

πŸ’»

Mark Steadman

πŸ› πŸ’»

Sergey

πŸ’»

Stan-C421

πŸ’»

Viraj Shah

πŸ’»

cornicis

πŸ’»

moe-25

πŸ’» πŸ‘€ πŸ”¬ πŸ›

Simone Bizzotto

πŸ’»

Boonyawe Sirimaha

πŸ›

T

πŸ’» 🎨

AubsUK

πŸ’¬

Georg Mischler

πŸ› πŸ’» 🎨 πŸ“– πŸ€” πŸ’¬ ⚠️

ping

πŸ›

Portfedh

πŸ“– βœ…

Tabarnhack

πŸ’»

Mridul Birla

🌍

digidigital

🌍

Xit

🌍

Alexander Burchenko

🌍

André Assunção

🌍

Quentin Brault

🌍

Paula Campigotto

πŸ› πŸ’» πŸ‘€

bettman-latin

πŸ’»

oleksii-shyman

πŸ’» 🎨 πŸ€”

lcomrade

πŸ“– πŸ› πŸ’»

pwt

πŸ› πŸ’»

Martin Cerveny

πŸ› πŸ’»

Spenhouet

πŸ› πŸ‘€

mtkumar123

πŸ’»

Davide Consalvo

πŸ’» πŸ’¬ 🎨

Bruno Santos

πŸ›

cgkoutzigiannis

⚠️

I Wayan Kurniawan

πŸ“–

Sven Eliasson

πŸ“–

gonzalobarbaran

πŸ’»

Nuttapat Koonarangsri

πŸ“–

Sokratis Vasiliou

🌍

semaeostomea

πŸ“–

JosuΓ© MillΓ‘n Zamora

πŸ’»

me-suzy

πŸ›

dmail00

πŸ›

This project follows the all-contributors specification (emoji key). Contributions of any kind welcome!

Contributors map

(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.