Skip to content

Releases: py-pdf/fpdf2

Document outline & table of contents

21 Apr 19:58
Compare
Choose a tag to compare

Added

  • new features: document outline & table of contents! Check out the new dedicated documentation page for more information
  • new method text_annotation to insert... Text Annotations
  • FPDF.image now also accepts an io.BytesIO as input

Fixed

  • HTMLMixin / HTML2FPDF: properly handling <img> inside <td> & allowing to center them horizontally

set_xmp_metadata & customizable <li> bullets & indentation

27 Mar 08:52
Compare
Choose a tag to compare

Added

  • FPDF.set_xmp_metadata
  • made <li> bullets & indentation configurable through class attributes, instance attributes or optional method arguments, cf. test_customize_ul

Fixed

  • FPDF.multi_cell: line wrapping with justified content and unicode fonts, cf. #118
  • FPDF.multi_cell: when ln=3, automatic page breaks now behave correctly at the bottom of pages

Polygons, accessibility & structure tree

28 Feb 09:31
Compare
Choose a tag to compare

Added

  • FPDF.polyline & FPDF.polygon : new methods added by @uovodikiwi - thanks!
  • FPDF.set_margin : new method to set the document right, left, top & bottom margins to the same value at once
  • FPDF.image now accepts new optional title & alt_text parameters defining the image title
    and alternative text describing it, for accessibility purposes
  • FPDF.link now honor its alt_text optional parameter and this alternative text describing links
    is now properly included in the resulting PDF document
  • the document language can be set using FPDF.set_lang

Fixed

  • FPDF.unbreakable so that no extra page jump is performed when FPDF.multi_cell is called inside this context

Deprecated

  • fpdf.FPDF_CACHE_MODE & fpdf.FPDF_CACHE_DIR in favor of a configurable new font_cache_dir optional argument of the fpdf.FPDF constructor

Unbreakable!

29 Jan 10:47
Compare
Choose a tag to compare

Many thanks to @eumiro & @fbernhart for their contributions to make fpdf2 cleaner!

Check this blog post for an explanation on this release name.

Added

  • FPDF.unbreakable : a new method providing a context-manager in which automatic page breaks are disabled.
    cf. https://pyfpdf.github.io/fpdf2/PageBreaks.html
  • FPDF.epw & FPDF.eph : new @property methods to retrieve the effective page width / height, that is the page width / height minus its horizontal / vertical margins.
  • FPDF.image now accepts also a Pillow.Image.Image as input
  • FPDF.multi_cell parameters evolve in order to generate tables with multiline text in cells:
    • its ln parameter now accepts a value of 3 that sets the new position to the right without altering vertical offset
    • a new optional max_line_height parameter sets a maximum height of each sub-cell generated
  • new documentation pages : how to add content to existing PDFs, HTML, links, tables, text styling & page breaks
  • all PDF samples are now validated using 3 different PDF checkers

Fixed

  • FPDF.alias_nb_pages: fixed this feature that was broken since v2.0.6
  • FPDF.set_font: fixed a bug where calling it several times, with & without the same parameters,
    prevented strings passed first to the text-rendering methods to be displayed.

Deprecated

  • the dest parameter of FPDF.output method

New minor version: 2.2

11 Jan 18:22
Compare
Choose a tag to compare

Added

  • new unit tests, a code formatter (black) and a linter (pylint) to improve code quality
  • new boolean parameter table_line_separators for HTMLMixin.write_html & underlying HTML2FPDF constructor

Changed

Removed

  • dropped support for external font definitions in .font Python files, that relied on a call to exec

Deprecated

  • the type parameter of FPDF.image method
  • the infile parameter of Template constructor
  • the dest parameter of Template.render method