
Project documentation: pdfly.readthedocs.io
pdfly is the youngest project of the py-pdf organization.
It has been created by Martin Thoma in 2022.
It's simply a CLI tool to manipulate PDF files, written in Python and based on the fpdf2 & pypdf libraries.
I'm a maintainer of the project 🙂
What can it do & what's next?
Find out by reading the full article
Added
- support for Output Intents on document level - thanks to @lka
- support for shading patterns (gradients) - thanks to @andersonhc - PR 1334
- support for setting a minimal row height in tables
- support for
v_alignat the row level in tables - new optional
reset_page_indicesparameter forinsert_toc_placeholder() - support for
strikethrough text - support for
first_line_indentintext_region.Paragraph - new ViewerPreferences.print_scaling
- documentation on
fpdf2internals - documentation on generating Aztec Codes
- added Slovenian translation of the tutorial: Vodič - thanks to @DeepBlackHole
- support for adding TrueType fonts that are missing the
.notdefglyph - issue 1161 - thanks to @spacegaori - improved SVG image parsing speed by 50% to 70% - thanks to @petri-lipponen-movesense - PR 1350
- added tutorial "tuto7" (in English and German) with documentation to create PDF/A files with fpdf2 - thanks to @lka
Fixed
FPDF.write_html(): Fixed rendering of content following<a>tags; now correctly resets emphasis style post</a>tag: hyperlink styling contained within the tag authority. - issue 1311- FPDF.footer() does not "leak" its text style to the table of contents anymore
FPDF.table(): Fixed heading styles containing underline failing to render.FPDF.ln(): the method now allows a value of0to be provided forh.- font optimization: only include fonts effectively used in the final PDF document. Fonts added via
set_font()oradd_page()but not actually used in the document are no longer included in the final output. This reduces file size and improves performance, especially for documents with many fallback fonts. - issue 1382 - a
KeyErrorwas raised in some specific cases when auto-downscaling images - issue 1409Changed
- heading rows of tables are never rendered "alone" on a page anymore
I wrote my last post on fpdf2 18 months ago.
We released 7 more versions of fpdf2 since then!
This article will present some of the major features introduced since v2.7.3 to v2.8.1 of fpdf2:
click on the buttons below to reveal the various changes brought …
I wrote my latest post on fpdf2 almost a year ago.
As we just released a new version, v2.7,
this is the time to mention some recent additions to this library! 😊
This article will present some of the major features introduced between v2.5.3 & v2.7.3 of …
fpdf2 is a simple & fast PDF creation library for Python that I have been maintaining since mid-2020.
In this article, I'm going to present some of the new features that landed since my last post on the subject. Hence, this will cover versions 2.5.0, 2.5.1 & 2 …
Added
- new parameters
new_xandnew_yforcell()andmulti_cell(), replacingln=0, thanks to @gmischler - new
add_highlight()method to insert highlight annotations: documentation - new
offset_rendering()method: documentation - new
.text_modeproperty: documentation - the page structure of the documentation has been revised, with a new page about adding text, thanks to @gmischler
- a warning is now raised if a context manager is used inside an
unbreakable()section, which is not supported
Changed
local_context()can now "scope" even more properties, likeblend_mode: documentation
Fixed
- No font properties should be leaked anymore after using markdown or in any other situations (cf. #359), thanks to @gmischler
- If
multi_cell(align="J")is given text with multiple paragraphs (text followed by an empty line) at once, it now renders the last line of each paragraph left-aligned,
instead of just the very last line (cf. #364), thanks to @gmischler - a regression: now again
multi_cell()always renders a cell, even iftxtis an empty string - cf. #349 - a bug with string width calculation when Markdown is enabled - cf. #351
- a few bugs when parsing some SVG files - cf. #356, #358 & #376
- a bug when using
multi_cell(..., split_only=True)inside anunbreakablesection - cf. #359
Deprecated
- The parameter
lntocell()andmulti_cell()is now deprecated, usenew_xandnew_yinstead. - The parameter
centertocell()is now deprecated, usealign="C"instead.
Displaying deprecation warnings
DeprecationWarnings are not displayed by Python by default.
Hence, every time you use a newer version of fpdf2, we strongly encourage you to execute your scripts
with the -Wd option (cf. documentation)
in order to get warned about deprecated features used in your code.
This can also be enabled programmatically with warnings.simplefilter('default', DeprecationWarning).
fpdf2 is a minimalist PDF creation library for Python that I am maintaining.
With the release yesterday of its v2.4.0, I'm going to present some of its notable new features since the latest minor version.
https://github.com/pyfpdf/fpdf2/
Doc: https://pyfpdf.github.io/fpdf2/
JPEG images …

Today, I am happy to announce version 2.3.0 of fpdf2, code name: Unbreakable!
https://github.com/pyfpdf/fpdf2/
Doc: https://pyfpdf.github.io/fpdf2/
Why Unbreakable?
- As a tribute to M. Night Shyamalan movie
- Because using
fpdf2, your Python code can never break!
...
Just kidding, I would be …

Today, I am happy to announce a new version 2.2.0 of fpdf2 !
https://github.com/alexanderankin/pyfpdf/
Doc: https://alexanderankin.github.io/pyfpdf/
During the last few months, I contributed a few improvements to fpdf2,
David Ankin fork of PyFPDF,
the user-friendly Python library to generate PDFs:
from …
Linkback protocols are an old breed. They were born in a time where MySpace, Wikipedia & WordPress had just been born, and Friendster was more popular than this new website called Facebook.
The latest linkback protocol, Webmention, is relatively recent though, as it became a W3C …
A year ago, I built a small JS lib using D3.js to visualize JSON-defined genealogy trees.
At the beginning of the year, I added a new feature using flex-calendar and moment-ferie-fr : a birthday calendar using the same JSON genealogy definition and miniature images.
I added this calendar to the …