Added
- new optional parameter
border
for table cells: users can define specific borders (left, right, top, bottom) for individual cells - thanks to @Kaustbh - issue #1192 FPDF.write_html()
: now parses<title>
tags to set the document title. By default, it is added as PDF metadata, but not rendered in the document body. However, this can be enabled by passingrender_title_tag=True
toFPDF.write_html()
.- support for LZWDecode compression - thanks to @opposss - issue #1271
- Python 3.13 is now officially supported
- support for page labels and created a reference table of contents implementation - thanks to @andersonhc - PR #1188
- documentation on how to: render spreadsheets as PDF tables
- support for passing
Align
values (along with string values like'C'
,'L'
,'R'
) inl_margin
ofTextStyle
to horizontally align text - issue #1282
Fixed
- support for
align=
inFPDF.table()
. Due to this correction, tables are now properly horizontally aligned on the page by default. This was always specified in the documentation, but was not in effect until now. You can revert to have left-aligned tables by passingalign="LEFT"
toFPDF.table()
. FPDF.set_text_shaping(False)
was broken since version 2.7.8 and is now working properly - issue #1287- fixed bug where cells with
rowspan
,colspan
> 1 and null text were not displayed properly - issue #1293 CreationDate
metadata used a wrong timezone offset for UTC - issue #1261insert_toc_placeholder()
did not properly the page orientation, which caused a bug when the last page of the document was in a different orientation - issue #1213
Changed
- improved logic for handling text substitution of the total number of pages, ensuring compatibility with text shaping - issue #1090
- all
AnnotationDict
properties can now be passed toFPDF.text_annotation()
,FPDF.free_text_annotation()
,FPDF.add_action()
,FPDF.add_text_markup_annotation()
&FPDF.ink_annotation()
. This includestitle
,color
,border_width
...
Removed
- reminder : since release
2.8.1
,fpdf2
does not support Python 3.7, that reached end-of-life in 2023