Download Latest Version Improved PDF standards compliance, page number alias substitution, and rendering, plus other bug fixes source code.zip (80.7 MB) Google Add to Preferred Sources
Home / 2.8.9
Name Modified Size InfoDownloads / Week
Parent folder
Improved PDF standards compliance, page number alias substitution, and rendering, plus other bug fixes source code.tar.gz 2026-09-29 79.6 MB
Improved PDF standards compliance, page number alias substitution, and rendering, plus other bug fixes source code.zip 2026-09-29 80.7 MB
README.md 2026-09-29 3.6 kB
Totals: 3 Items   160.3 MB 5

[2.8.9] - 2026-09-29

Added

  • align parameter for FPDF.alias_nb_pages() to control horizontal alignment (Align.L, Align.C, Align.R) of substitution text inside reserved alias space - cf. issue [#1926] - thanks to @prateek-dagar
  • support for page number alias substitution with bidirectional / RTL text shaping - cf. issue [#1925] - thanks to @prateek-dagar
  • appearance parameter for FPDF.file_attachment_annotation(), accepting FileAttachmentAppearance.HIDDEN to give the annotation an empty appearance stream so its default icon is not displayed while the file stays embedded and reachable - cf. issue [#561] - thanks to @ChrisJr404
  • Turkish translation of the Tuto 7 - Creating PDF/A Documents tutorial section, along with fixes for duplicated clauses and mistranslations in the Tuto 2, 4 & 6 descriptions - cf. PR [#1951] - thanks to @ihsandeniz

Fixed

  • escaped Markdown markers adjacent to emphasis markers in link labels no longer lose literal characters or apply unintended styling
  • PDF serialization of boolean and null values: booleans in arrays and dictionaries now use lowercase true and false, including in mixed numeric/boolean arrays; None in arrays is serialized as null; and filtering empty dictionary fields preserves False and numeric zero values - thanks to @agustin18
  • SVG percentage width and height values with surrounding whitespace (e.g. width="100% ") no longer raise ValueError - thanks to @Anai-Guo
  • PDF/A-1 documents using TrueType or CFF-based CID fonts now include a /CIDSet stream in each font descriptor, as required by ISO 19005-1 (veraPDF rule 6.3.5-3) - cf. issue [#88]
  • split font /ToUnicode and /Encoding CMap mappings into blocks of at most 100 entries, as required by the PDF specification - cf. issue [#1952]
  • visual gap in rendering subsequent text after {nb} page alias when text shaping is enabled - cf. issue [#1090] - thanks to @prateek-dagar
  • FPDF.write_html() no longer raises IndexError: pop from empty list when a <ul> or <ol> element carries a line-height that is not a bare number (e.g. line-height: normal or line-height: 1.5em); such values are now ignored, and the default line height is used, consistently with <p line-height="x"> - thanks to @Anai-Guo
  • FPDF.write_html() now renders list bullets with correct font styling instead of inheriting preceding heading (e.g. <h1>) styles - cf. issue [#1921] - thanks to @prateek-dagar
  • table cells landing in the wrong column when a row was covered by several rowspans that did not start in column order - cf. issue [#1948]
  • Padding.new() now accepts 1-element sequences per CSS shorthand rules and preserves existing Padding instances without redundant allocations

Changed

  • Refactored _tt_font_widths to reuse _cid_font_widths glyph interval compression logic - thanks to @agustin18
Source: README.md, updated 2026-09-29