[PR #8242] [MERGED] build(deps): bump fpdf2 from 2.7.9 to 2.8.2 in /backend #22188

Closed
opened 2026-04-20 03:58:11 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/8242
Author: @dependabot[bot]
Created: 1/1/2025
Status: Merged
Merged: 1/1/2025
Merged by: @tjbck

Base: devHead: dependabot/pip/backend/dev/fpdf2-2.8.2


📝 Commits (1)

  • 236410c build(deps): bump fpdf2 from 2.7.9 to 2.8.2 in /backend

📊 Changes

1 file changed (+1 additions, -1 deletions)

View changed files

📝 backend/requirements.txt (+1 -1)

📄 Description

Bumps fpdf2 from 2.7.9 to 2.8.2.

Release notes

Sourced from fpdf2's releases.

Support for page labels & Python 3.13 - various fixes & improvements

Added

Fixed

  • support for align= in FPDF.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 passing align="LEFT" to FPDF.table().
  • FPDF.set_text_shaping(False) was broken since version 2.7.8 and is now working properly - [issue #1287](py-pdf/fpdf2#1287)
  • fixed bug where cells with rowspan, colspan > 1 and null text were not displayed properly - [issue #1293](py-pdf/fpdf2#1293)
  • CreationDate metadata used a wrong timezone offset for UTC - [issue #1261](py-pdf/fpdf2#1261)
  • insert_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](py-pdf/fpdf2#1213)

Changed

  • improved logic for handling text substitution of the total number of pages, ensuring compatibility with text shaping - [issue #1090](py-pdf/fpdf2#1090)
  • all AnnotationDict properties can now be passed to FPDF.text_annotation(), FPDF.free_text_annotation(), FPDF.add_action(), FPDF.add_text_markup_annotation() & FPDF.ink_annotation(). This includes title, color, border_width...

Removed

  • reminder : since release 2.8.1, fpdf2 does not support Python 3.7, that reached end-of-life in 2023

FPDF.bezier() to render quadratic and cubic Bézier curves, and many improvements

Note: a temporary 2.8.0 version was released but then erroneously removed on Pypi. Versions 2.8.0 & 2.8.1 are exactly the same.

Added

  • support for quadratic and cubic Bézier curves with FPDF.bezier() - thanks to @​awmc000
  • support for escape character for markers in markdown text [issue #1215](py-pdf/fpdf2#1215)
  • Wrapping words on spaces now considers all common space symbols in addition to regular spaces (' '), addressing issues with word-wrapping for languages like Thai, as per #1190 and #1191.
  • Templates can now be also defined in JSON files.
  • support to optionally set wrapmode in templates (default "WORD" can optionally be set to "CHAR" to support wrapping on characters for scripts like Chinese or Japanese) - cf. #1159 - thanks to @​carlhiggs
  • documentation on how to use fpdf2 with Rough.js: link to docs
  • documentation on how to use fpdf2 with gunicorn: link to docs
  • new translation of the tutorial in Türkçe, thanks to @​natgho: Türkçe
  • feature to identify the Unicode script of the input text and break it into fragments when different scripts are used, improving text shaping results
  • FPDF.image(): now handles keep_aspect_ratio in combination with an enum value provided to x
  • FPDF.write_html(): now supports CSS page breaks properties : documentation
  • FPDF.write_html(): new optional font_family parameter to set the default font family
  • FPDF.write_html(): spacing before lists can now be adjusted via the tag_styles attribute - thanks to @​lcgeneralprojects
  • file names are mentioned in errors when fpdf2 fails to parse a SVG image

Fixed

... (truncated)

Changelog

Sourced from fpdf2's changelog.

[2.8.2] - 2024-12-16

Added

Fixed

  • support for align= in FPDF.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 passing align="LEFT" to FPDF.table(). - [issue #1306](py-pdf/fpdf2#1306)
  • FPDF.set_text_shaping(False) was broken since version 2.7.8 and is now working properly - [issue #1287](py-pdf/fpdf2#1287)
  • fixed bug where cells with rowspan, colspan > 1 and null text were not displayed properly - [issue #1293](py-pdf/fpdf2#1293)
  • CreationDate metadata used a wrong timezone offset for UTC - [issue #1261](py-pdf/fpdf2#1261)
  • insert_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 #1312](py-pdf/fpdf2#1213)

Changed

  • improved logic for handling text substitution of the total number of pages, ensuring compatibility with text shaping - [issue #1090](py-pdf/fpdf2#1090)
  • all AnnotationDict properties can now be passed to FPDF.text_annotation(), FPDF.free_text_annotation(), FPDF.add_action(), FPDF.add_text_markup_annotation() & FPDF.ink_annotation(). This includes title, color, border_width...

Removed

  • reminder : since release 2.8.1, fpdf2 does not support Python 3.7, that reached end-of-life in 2023

[2.8.1] - 2024-10-04

Added

  • support for quadratic and cubic Bézier curves with FPDF.bezier() - thanks to @​awmc000
  • support for escape character for markers in markdown text [issue #1215](py-pdf/fpdf2#1215)
  • Wrapping words on spaces now considers all common space symbols in addition to regular spaces (' '), addressing issues with word-wrapping for languages like Thai, as per #1190 and #1191.
  • Templates can now be also defined in JSON files.
  • support to optionally set wrapmode in templates (default "WORD" can optionally be set to "CHAR" to support wrapping on characters for scripts like Chinese or Japanese) - cf. #1159 - thanks to @​carlhiggs
  • documentation on how to use fpdf2 with Rough.js: link to docs
  • documentation on how to use fpdf2 with gunicorn: link to docs
  • new translation of the tutorial in Türkçe, thanks to @​natgho: Türkçe
  • feature to identify the Unicode script of the input text and break it into fragments when different scripts are used, improving text shaping results
  • FPDF.image(): now handles keep_aspect_ratio in combination with an enum value provided to x
  • FPDF.write_html(): now supports CSS page breaks properties : documentation
  • FPDF.write_html(): new optional font_family parameter to set the default font family
  • FPDF.write_html(): spacing before lists can now be adjusted via the tag_styles attribute - thanks to @​lcgeneralprojects
  • file names are mentioned in errors when fpdf2 fails to parse a SVG image

Fixed

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/open-webui/pull/8242 **Author:** [@dependabot[bot]](https://github.com/apps/dependabot) **Created:** 1/1/2025 **Status:** ✅ Merged **Merged:** 1/1/2025 **Merged by:** [@tjbck](https://github.com/tjbck) **Base:** `dev` ← **Head:** `dependabot/pip/backend/dev/fpdf2-2.8.2` --- ### 📝 Commits (1) - [`236410c`](https://github.com/open-webui/open-webui/commit/236410cd9594be4ade0e9043a9addef58bde166c) build(deps): bump fpdf2 from 2.7.9 to 2.8.2 in /backend ### 📊 Changes **1 file changed** (+1 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `backend/requirements.txt` (+1 -1) </details> ### 📄 Description Bumps [fpdf2](https://github.com/py-pdf/fpdf2) from 2.7.9 to 2.8.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/py-pdf/fpdf2/releases">fpdf2's releases</a>.</em></p> <blockquote> <h2>Support for page labels &amp; Python 3.13 - various fixes &amp; improvements</h2> <h3>Added</h3> <ul> <li>new optional parameter <code>border</code> for table cells: users can define specific borders (left, right, top, bottom) for individual cells - thanks to <a href="https://github.com/Kaustbh"><code>@​Kaustbh</code></a> - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1192">#1192</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1192">py-pdf/fpdf2#1192</a>)</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: now parses <code>&lt;title&gt;</code> tags to set the <a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_title">document title</a>. By default, it is added as PDF metadata, but not rendered in the document body. However, this can be enabled by passing <code>render_title_tag=True</code> to <code>FPDF.write_html()</code>.</li> <li>support for LZWDecode compression - thanks to <a href="https://github.com/opposss"><code>@​opposss</code></a> - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1271">#1271</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1271">py-pdf/fpdf2#1271</a>)</li> <li>Python 3.13 is now officially supported</li> <li>support for <a href="https://py-pdf.github.io/fpdf2/PageLabels.html">page labels</a> and created a <a href="https://py-pdf.github.io/fpdf2/DocumentOutlineAndTableOfContents.html">reference table of contents</a> implementation - thanks to <a href="https://github.com/andersonhc"><code>@​andersonhc</code></a> - [PR <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1188">#1188</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/pull/1188">py-pdf/fpdf2#1188</a>)</li> <li>documentation on how to: <a href="https://py-pdf.github.io/fpdf2/RenderingSpreadsheetsAsPDFTables.html">render spreadsheets as PDF tables</a></li> <li>support for passing <code>Align</code> values (along with string values like <code>'C'</code>, <code>'L'</code>, <code>'R'</code>) in <code>l_margin</code> of <code>TextStyle</code> to horizontally align text - issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1282">#1282</a></li> </ul> <h3>Fixed</h3> <ul> <li>support for <code>align=</code> in <a href="https://py-pdf.github.io/fpdf2/Tables.html#setting-table-column-widths"><code>FPDF.table()</code></a>. 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 passing <code>align=&quot;LEFT&quot;</code> to <code>FPDF.table()</code>.</li> <li><code>FPDF.set_text_shaping(False)</code> was broken since version 2.7.8 and is now working properly - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1287">#1287</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1287">py-pdf/fpdf2#1287</a>)</li> <li>fixed bug where cells with <code>rowspan</code>, <code>colspan</code> &gt; 1 and null text were not displayed properly - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1293">#1293</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1293">py-pdf/fpdf2#1293</a>)</li> <li><code>CreationDate</code> metadata used a wrong timezone offset for UTC - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1261">#1261</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1261">py-pdf/fpdf2#1261</a>)</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.insert_toc_placeholder"><code>insert_toc_placeholder()</code></a> did not properly the page orientation, which caused a bug when the last page of the document was in a different orientation - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1213">#1213</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1213">py-pdf/fpdf2#1213</a>)</li> </ul> <h3>Changed</h3> <ul> <li>improved logic for handling text substitution of the total number of pages, ensuring compatibility with text shaping - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1090">#1090</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1090">py-pdf/fpdf2#1090</a>)</li> <li>all <a href="https://py-pdf.github.io/fpdf2/fpdf/annotations.html"><code>AnnotationDict</code></a> properties can now be passed to <code>FPDF.text_annotation()</code>, <code>FPDF.free_text_annotation()</code>, <code>FPDF.add_action()</code>, <code>FPDF.add_text_markup_annotation()</code> &amp; <code>FPDF.ink_annotation()</code>. This includes <code>title</code>, <code>color</code>, <code>border_width</code>...</li> </ul> <h3>Removed</h3> <ul> <li>reminder : since release <code>2.8.1</code>, <code>fpdf2</code> does not support Python 3.7, that reached <a href="https://devguide.python.org/versions/#supported-versions">end-of-life</a> in 2023</li> </ul> <h2>FPDF.bezier() to render quadratic and cubic Bézier curves, and many improvements</h2> <p>Note: a temporary 2.8.0 version was released but then erroneously removed on <a href="https://pypi.org/project/fpdf2/">Pypi</a>. Versions 2.8.0 &amp; 2.8.1 are exactly the same.</p> <h3>Added</h3> <ul> <li>support for quadratic and cubic Bézier curves with <a href="https://py-pdf.github.io/fpdf2/fpdf/Shapes.html#fpdf.fpdf.FPDF.bezier"><code>FPDF.bezier()</code></a> - thanks to <a href="https://github.com/awmc000"><code>@​awmc000</code></a></li> <li>support for escape character for markers in markdown text [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1215">#1215</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1215">py-pdf/fpdf2#1215</a>)</li> <li>Wrapping words on spaces now considers all common space symbols in addition to regular spaces (' '), addressing issues with word-wrapping for languages like Thai, as per <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1190">#1190</a> and <a href="https://redirect.github.com/py-pdf/fpdf2/pull/1191">#1191</a>.</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/Templates.html"><code>Templates</code></a> can now be also defined in JSON files.</li> <li>support to optionally set <code>wrapmode</code> in templates (default <code>&quot;WORD&quot;</code> can optionally be set to <code>&quot;CHAR&quot;</code> to support wrapping on characters for scripts like Chinese or Japanese) - <em>cf.</em> <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1159">#1159</a> - thanks to <a href="https://github.com/carlhiggs"><code>@​carlhiggs</code></a></li> <li>documentation on how to use <code>fpdf2</code> with <a href="https://roughjs.com/">Rough.js</a>: <a href="https://py-pdf.github.io/fpdf2/CombineWithRoughJS.html">link to docs</a></li> <li>documentation on how to use <code>fpdf2</code> with <a href="https://gunicorn.org/">gunicorn</a>: <a href="https://py-pdf.github.io/fpdf2/UsageInWebAPI.html#gunicorn">link to docs</a></li> <li>new translation of the tutorial in Türkçe, thanks to <a href="https://github.com/natgho"><code>@​natgho</code></a>: <a href="https://py-pdf.github.io/fpdf2/Tutorial-tr.html">Türkçe</a></li> <li>feature to identify the Unicode script of the input text and break it into fragments when different scripts are used, improving <a href="https://py-pdf.github.io/fpdf2/TextShaping.html">text shaping</a> results</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.image"><code>FPDF.image()</code></a>: now handles <code>keep_aspect_ratio</code> in combination with an enum value provided to <code>x</code></li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: now supports CSS page breaks properties : <a href="https://py-pdf.github.io/fpdf2/HTML.html#page-breaks">documentation</a></li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: new optional <code>font_family</code> parameter to set the default font family</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: spacing before lists can now be adjusted via the <code>tag_styles</code> attribute - thanks to <a href="https://github.com/lcgeneralprojects"><code>@​lcgeneralprojects</code></a></li> <li>file names are mentioned in errors when <code>fpdf2</code> fails to parse a SVG image</li> </ul> <h3>Fixed</h3> <ul> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.local_context"><code>FPDF.local_context()</code></a> used to leak styling during page breaks, when rendering <code>footer()</code> &amp; <code>header()</code> - MR: <a href="https://redirect.github.com/py-pdf/fpdf2/pulls/1207">#1207</a></li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/drawing.html#fpdf.drawing.DeviceCMYK"><code>fpdf.drawing.DeviceCMYK</code></a> objects can now be passed to <a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_draw_color"><code>FPDF.set_draw_color()</code></a>, <a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_fill_color"><code>FPDF.set_fill_color()</code></a> and <a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_text_color"><code>FPDF.set_text_color()</code></a> without raising a <code>ValueError</code>: <a href="https://py-pdf.github.io/fpdf2/Text.html#text-formatting">documentation</a>.</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: fixing rendering of <code>&lt;hr&gt;</code> tags, that do not trigger a page break anymore</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: fixed automatic page break when an image does not have enough vertical space to be rendered on a page</li> <li>individual <code>/Resources</code> directories are now properly created for each document page. This change ensures better compliance with the PDF specification but results in a slight increase in the size of PDF documents. You can still use the old behavior by setting <code>FPDF().single_resources_object = True</code></li> <li>line size calculation for fragments when <a href="https://py-pdf.github.io/fpdf2/TextShaping.html">text shaping</a> is used</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/py-pdf/fpdf2/blob/master/CHANGELOG.md">fpdf2's changelog</a>.</em></p> <blockquote> <h2>[2.8.2] - 2024-12-16</h2> <h3>Added</h3> <ul> <li>new optional parameter <code>border</code> for table cells: users can define specific borders (left, right, top, bottom) for individual cells - thanks to <a href="https://github.com/Kaustbh"><code>@​Kaustbh</code></a> - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1192">#1192</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1192">py-pdf/fpdf2#1192</a>)</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: now parses <code>&lt;title&gt;</code> tags to set the <a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_title">document title</a>. By default, it is added as PDF metadata, but not rendered in the document body. However, this can be enabled by passing <code>render_title_tag=True</code> to <code>FPDF.write_html()</code>.</li> <li>support for LZWDecode compression - thanks to <a href="https://github.com/opposss"><code>@​opposss</code></a> - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1271">#1271</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1271">py-pdf/fpdf2#1271</a>)</li> <li>Python 3.13 is now officially supported</li> <li>support for <a href="https://py-pdf.github.io/fpdf2/PageLabels.html">page labels</a> and created a <a href="https://py-pdf.github.io/fpdf2/DocumentOutlineAndTableOfContents.html">reference table of contents</a> implementation - thanks to <a href="https://github.com/andersonhc"><code>@​andersonhc</code></a> - [PR <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1188">#1188</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/pull/1188">py-pdf/fpdf2#1188</a>)</li> <li>documentation on how to: <a href="https://py-pdf.github.io/fpdf2/RenderingSpreadsheetsAsPDFTables.html">render spreadsheets as PDF tables</a></li> <li>support for passing <code>Align</code> values (along with string values like <code>'C'</code>, <code>'L'</code>, <code>'R'</code>) in <code>l_margin</code> of <code>TextStyle</code> to horizontally align text - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1282">#1282</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1282">py-pdf/fpdf2#1282</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>support for <code>align=</code> in <a href="https://py-pdf.github.io/fpdf2/Tables.html#setting-table-column-widths"><code>FPDF.table()</code></a>. 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 passing <code>align=&quot;LEFT&quot;</code> to <code>FPDF.table()</code>. - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1306">#1306</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1306">py-pdf/fpdf2#1306</a>)</li> <li><code>FPDF.set_text_shaping(False)</code> was broken since version 2.7.8 and is now working properly - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1287">#1287</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1287">py-pdf/fpdf2#1287</a>)</li> <li>fixed bug where cells with <code>rowspan</code>, <code>colspan</code> &gt; 1 and null text were not displayed properly - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1293">#1293</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1293">py-pdf/fpdf2#1293</a>)</li> <li><code>CreationDate</code> metadata used a wrong timezone offset for UTC - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1261">#1261</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1261">py-pdf/fpdf2#1261</a>)</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.insert_toc_placeholder"><code>insert_toc_placeholder()</code></a> did not properly the page orientation, which caused a bug when the last page of the document was in a different orientation - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1312">#1312</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1213">py-pdf/fpdf2#1213</a>)</li> </ul> <h3>Changed</h3> <ul> <li>improved logic for handling text substitution of the total number of pages, ensuring compatibility with text shaping - [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1090">#1090</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1090">py-pdf/fpdf2#1090</a>)</li> <li>all <a href="https://py-pdf.github.io/fpdf2/fpdf/annotations.html"><code>AnnotationDict</code></a> properties can now be passed to <code>FPDF.text_annotation()</code>, <code>FPDF.free_text_annotation()</code>, <code>FPDF.add_action()</code>, <code>FPDF.add_text_markup_annotation()</code> &amp; <code>FPDF.ink_annotation()</code>. This includes <code>title</code>, <code>color</code>, <code>border_width</code>...</li> </ul> <h3>Removed</h3> <ul> <li>reminder : since release <code>2.8.1</code>, <code>fpdf2</code> does not support Python 3.7, that reached <a href="https://devguide.python.org/versions/#supported-versions">end-of-life</a> in 2023</li> </ul> <h2>[2.8.1] - 2024-10-04</h2> <h3>Added</h3> <ul> <li>support for quadratic and cubic Bézier curves with <a href="https://py-pdf.github.io/fpdf2/fpdf/Shapes.html#fpdf.fpdf.FPDF.bezier"><code>FPDF.bezier()</code></a> - thanks to <a href="https://github.com/awmc000"><code>@​awmc000</code></a></li> <li>support for escape character for markers in markdown text [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1215">#1215</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1215">py-pdf/fpdf2#1215</a>)</li> <li>Wrapping words on spaces now considers all common space symbols in addition to regular spaces (' '), addressing issues with word-wrapping for languages like Thai, as per <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1190">#1190</a> and <a href="https://redirect.github.com/py-pdf/fpdf2/pull/1191">#1191</a>.</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/Templates.html"><code>Templates</code></a> can now be also defined in JSON files.</li> <li>support to optionally set <code>wrapmode</code> in templates (default <code>&quot;WORD&quot;</code> can optionally be set to <code>&quot;CHAR&quot;</code> to support wrapping on characters for scripts like Chinese or Japanese) - <em>cf.</em> <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1159">#1159</a> - thanks to <a href="https://github.com/carlhiggs"><code>@​carlhiggs</code></a></li> <li>documentation on how to use <code>fpdf2</code> with <a href="https://roughjs.com/">Rough.js</a>: <a href="https://py-pdf.github.io/fpdf2/CombineWithRoughJS.html">link to docs</a></li> <li>documentation on how to use <code>fpdf2</code> with <a href="https://gunicorn.org/">gunicorn</a>: <a href="https://py-pdf.github.io/fpdf2/UsageInWebAPI.html#gunicorn">link to docs</a></li> <li>new translation of the tutorial in Türkçe, thanks to <a href="https://github.com/natgho"><code>@​natgho</code></a>: <a href="https://py-pdf.github.io/fpdf2/Tutorial-tr.html">Türkçe</a></li> <li>feature to identify the Unicode script of the input text and break it into fragments when different scripts are used, improving <a href="https://py-pdf.github.io/fpdf2/TextShaping.html">text shaping</a> results</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.image"><code>FPDF.image()</code></a>: now handles <code>keep_aspect_ratio</code> in combination with an enum value provided to <code>x</code></li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: now supports CSS page breaks properties : <a href="https://py-pdf.github.io/fpdf2/HTML.html#page-breaks">documentation</a></li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: new optional <code>font_family</code> parameter to set the default font family</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: spacing before lists can now be adjusted via the <code>tag_styles</code> attribute - thanks to <a href="https://github.com/lcgeneralprojects"><code>@​lcgeneralprojects</code></a></li> <li>file names are mentioned in errors when <code>fpdf2</code> fails to parse a SVG image</li> </ul> <h3>Fixed</h3> <ul> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.local_context"><code>FPDF.local_context()</code></a> used to leak styling during page breaks, when rendering <code>footer()</code> &amp; <code>header()</code> - MR: <a href="https://redirect.github.com/py-pdf/fpdf2/pulls/1207">#1207</a></li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/drawing.html#fpdf.drawing.DeviceCMYK"><code>fpdf.drawing.DeviceCMYK</code></a> objects can now be passed to <a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_draw_color"><code>FPDF.set_draw_color()</code></a>, <a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_fill_color"><code>FPDF.set_fill_color()</code></a> and <a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.set_text_color"><code>FPDF.set_text_color()</code></a> without raising a <code>ValueError</code>: <a href="https://py-pdf.github.io/fpdf2/Text.html#text-formatting">documentation</a>.</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: fixing rendering of <code>&lt;hr&gt;</code> tags, that do not trigger a page break anymore</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: fixed automatic page break when an image does not have enough vertical space to be rendered on a page</li> <li>individual <code>/Resources</code> directories are now properly created for each document page. This change ensures better compliance with the PDF specification but results in a slight increase in the size of PDF documents. You can still use the old behavior by setting <code>FPDF().single_resources_object = True</code></li> <li>line size calculation for fragments when <a href="https://py-pdf.github.io/fpdf2/TextShaping.html">text shaping</a> is used</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/fpdf.html#fpdf.fpdf.FPDF.write_html"><code>FPDF.write_html()</code></a>: fixed incoherent indentation of long <code>&lt;ul&gt;</code> list entries - <em>cf.</em> [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1073">#1073</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1073">py-pdf/fpdf2#1073</a>) - thanks to <a href="https://github.com/lcgeneralprojects"><code>@​lcgeneralprojects</code></a></li> <li>default values for <code>top_margin</code> and <code>bottom_margin</code> in <code>HTML2FPDF._new_paragraph()</code> calls are now correctly converted into chosen document units.</li> <li>In <a href="https://py-pdf.github.io/fpdf2/extColumns.html">text_columns()</a>, paragraph top/bottom margins didn't correctly trigger column breaks; [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1214">#1214</a>](<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1214">py-pdf/fpdf2#1214</a>)</li> <li><a href="https://py-pdf.github.io/fpdf2/fpdf/drawing.html#fpdf.drawing.color_from_hex_string"><code>fpdf.drawing.color_from_hex_string</code></a> did not test or mention accepting lowercase hex values.</li> <li>handling of bidirectional text on <code>FPDF.get_string_width()</code> [issue <a href="https://redirect.github.com/py-pdf/fpdf2/issues/1231">#1231</a>]</li> <li>new translation of the tutorial in <a href="https://py-pdf.github.io/fpdf2/Tutorial-id.html">Indonesian</a> - thanks to <a href="https://github.com/odhyp"><code>@​odhyp</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/py-pdf/fpdf2/commit/b9cfbb6d8ca1eb034e826fd358194e899a1daf28"><code>b9cfbb6</code></a> v2.8.2</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/eeef9884e12b08ae490ed217b4700fd8e2deee6f"><code>eeef988</code></a> Added TextStyle Horizontal Alignment (<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1300">#1300</a>)</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/4e1ffcb8d94c9f291697f1b49ee1e9489274c205"><code>4e1ffcb</code></a> add visheshdvivedi as a contributor for code (<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1329">#1329</a>)</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/1f28448827cf1c11035924b94c8f7077ca8fde94"><code>1f28448</code></a> Support Python 3.13 (<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1291">#1291</a>)</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/9f2cccea1ba4e240835def02ce7b9b41ad0dcf12"><code>9f2ccce</code></a> Minor docs update</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/654a871f03cd2131a96208e5cc26a27f60e88f8f"><code>654a871</code></a> Minor docs update</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/f445fa4d744331a909b21aa659c20c7892a32d1b"><code>f445fa4</code></a> Pleasing black</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/cb760cd273c5adb03fbb766a0b2a8c88e5ba5d71"><code>cb760cd</code></a> Fixing test_intense_image_rendering() in CI pipeline (<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1321">#1321</a>)</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/5a0a64b8aba7b53ba732e05ec7ccef2f69342b08"><code>5a0a64b</code></a> Documentation on how to render spreadsheets as PDF tables (<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1327">#1327</a>)</li> <li><a href="https://github.com/py-pdf/fpdf2/commit/7243bb56c1032a790be07481f215e60fb5a7ec00"><code>7243bb5</code></a> FPDF: Document pdf.page, warn against modifying manually (<a href="https://redirect.github.com/py-pdf/fpdf2/issues/1325">#1325</a>)</li> <li>Additional commits viewable in <a href="https://github.com/py-pdf/fpdf2/compare/2.7.9...2.8.2">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fpdf2&package-manager=pip&previous-version=2.7.9&new-version=2.8.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-20 03:58:11 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#22188