Releases: Kozea/WeasyPrint
v62.0
Read about this release on our blog.
Dependencies
- Python 3.9+ is now needed, Python 3.7 and 3.8 are not supported anymore
- pydyf 0.10.0+ is now needed
- tinycss2 1.3.0+ is now needed
Features
- #543, #2121: Support CSS Grid layout
- #2124, #2125: Support border-image-* properties
- #2084, #2077: Support CSS nesting
- #2101: Support HTML maxlength attribute for form fields
- #2095: Apply overflow to replaced boxes
- 245e4f5: Add support of PDF/A-?u
Bug fixes
- #2136: Don’t clip aligned text in SVG
- #2135: Allow column-direction flex containers to use percentage-based heights
- #2128: Don’t crash when a FontConfig object is destroyed early
- #2079: Fix executable file for some Windows versions
- #2131: Fix alpha for images before/after transparent text
- #2111: Handle auto and none values for CSS quotes property
- #2103: Don’t crash with overconstrained columns
- #2100: Fix rounding error when detecting overflows
- #2093, #2097, #2094: Mark use of md5() and sha1() as not for security
- #1956, #2087: Use CSS table module level 3 to compute widths
- #2086: Fix selects with empty values displaying None
- #1112, #2082, #2085: Fix computation for outer min-content width for table cells
- 016bd81: Fix many different bugs with SVG markers
Performance
- #2130: Cache font key instead of whole font content
Documentation
- #2108: Update documentation about CSS leader() function
Contributors
- Guillaume Ayoub
- Lucie Anglade
- Xavid Pretzer
- kygoh
- Germain Gueutier
- Vagner José Nicolodi
Backers and sponsors:
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- Simon Sapin
- René Fritz
- TrainingSparkle
- Healthchecks.io
- Docraptor
- Yanal-Yvez Fargialla
- Douwe van Loenen
- Morntag
- Xavid
v61.2
This is a security update.
We strongly recommend to upgrade WeasyPrint to the latest version if you use WeasyPrint 61.0 or 61.1. Older versions are not impacted.
Security
- Always use URL fetcher for attachments
Contributors
- Guillaume Ayoub
- Ilia Novoselov
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- René Fritz
- Simon Sapin
- Arcanite
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- Docraptor
- Yanal-Yvez Fargialla
- Morntag
- NBCO
v61.1
Released on 2024-02-26.
Bug fixes
- #2075: Use default value when variable is not defined
- #2070: Don’t crash when rendering SVGs with non-text a children
- Don’t crash when SVG file can’t be rendered
Documentation
- #2067: Suggest "dnf" instead of "yum" to install Fedora packages
- Improve documentation for Windows
- Fix required version of TinyCSS2
Contributors
- Guillaume Ayoub
- Felix Schwarz
- Lucie Anglade
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- René Fritz
- Simon Sapin
- Arcanite
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- Docraptor
- Yanal-Yvez Fargialla
- Morntag
- NBCO
v61.0
Read about this release on our blog.
Python API
DocumentMetadata.attachments
is now a list ofAttachment
objects, not
a list of(url, description)
tuples.
New features
- #1219, #2017: Support var() in shorthand and multiple-value functions
- #1986: Support percentages for opacity
- #2050: Build executable file for Windows
- #2000: Support select fields
- #1993: Handle background-attachment: fixed to cover the whole page
- #2023, #2022: Allow text-based file objects for HTML and CSS classes
- #2014: Remove warnings for PDF/A and PDF/UA compatibility
Bug fixes
- #2052, #1869: Handle attachments for PDF/A documents
- #2013, #2051: Apply margin to running tables
- #1278, #1884: Draw collapsed borders of running tables
- #2029: Fix page counter in non-root absolute boxes
- #2043: Fix text-anchor on SVG tspan elements
- #1968, #2039: Use cell's border-height to calculate table row height
- #2030: Ensure that bounding box is set to invisible text tags
- #2040, #2041: Don’t crash on malformed URLs
- #2026: Don’t break pages when fixed-height elements don’t overflow page
- #2038: Don’t mix original streams when drawing transparent text
- #2016: Avoid duplication when breaking out-of-flow boxes
- #2012: Don’t crash when CSS properties have no value
- #2010, #1287: Fix many corner cases with CSS variables
- #1996: Don’t crash when drawing groove/ridge collapsed borders
- #1982: Fix SVG markers size, position and drawing
Contributors
- Guillaume Ayoub
- kygoh
- Lucie Anglade
- Timo Ramsauer
- Alexander Gitter
- Michael Lisitsa
- Vagner José Nicolodi
- Manolis Stamatogiannakis
- Pascal de Bruijn
- Viktor Shevtsov
- Eduardo Gonzalez
- Kesara Rathnayake
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- René Fritz
- Simon Sapin
- Arcanite
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- Docraptor
- Yanal-Yvez Fargialla
- Morntag
- NBCO
v60.2
Bug fixes
- #1982: Fix SVG markers size, position and drawing
- 23cfc77: Draw background behind absolutely positioned replaced boxes
- fe2f0c6: Don’t crash with bitmap fonts with no "glyf" table
- 1460522: Improve SVG text-anchor attribute
Contributors
- Guillaume Ayoub
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- NCC Group
- René Fritz
- Nicola Auchmuty
- Syslifters
- Hammerbacher
- TrainingSparkle
- Daniel Kucharski
- Healthchecks.io
- Yanal-Yvez Fargialla
- WakaTime
- Paheko
- Synapsium
- DocRaptor
v60.1
Bug fixes
- #1973: Fix crash caused by wrong UTF-8 indices
Contributors
- Guillaume Ayoub
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- NCC Group
- René Fritz
- Nicola Auchmuty
- Syslifters
- Hammerbacher
- TrainingSparkle
- Daniel Kucharski
- Healthchecks.io
- Yanal-Yvez Fargialla
- WakaTime
- Paheko
- Synapsium
- DocRaptor
v60.0
Read about this release on our blog.
New features
- #1903: Print form fields
- #1922: Add support for textLength and lengthAdjust in SVG text elements
- #1965: Handle
<wbr>
tag - #1970: Handle y offset of glyphs
- #1909: Add a --timeout option
Bug fixes
- #1887: Fix footnote-call displayed incorrectly for some fonts
- #1890: Fix page-margin boxes layout algorithm
- #1908: Fix IndexError when rendering PDF version 1.4
- #1906: Apply text transformations to first-letter pseudo elements
- #1915: Avoid footnote appearing before its call
- #1934: Fix balance before "column-span: all"
- #1935: Only draw required glyph with OpenType-SVG fonts
- #1595: Don’t draw clipPath when defined after reference
- #1895: Don’t ignore min-width when computing cell size
- #1899: Fix named pages inheritance
- #1936: Avoid page breaks caused by children of overflow hidden boxes
- #1943: Use bleed area for page’s painting area
- #1946: Use margin box of children to define available width for leaders
Contributors
- Guillaume Ayoub
- Sahil Rohilla
- Azharuddin Syed
- kygoh
- Andy Lenards
- Gaurav Samudra
- Michael Wedl
- Lucie Anglade
- Obeida Shamoun
- Evgeniy Krysanov
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- NCC Group
- René Fritz
- Nicola Auchmuty
- Syslifters
- Hammerbacher
- TrainingSparkle
- Daniel Kucharski
- Healthchecks.io
- Yanal-Yvez Fargialla
- WakaTime
- Paheko
- Synapsium
- DocRaptor
v59.0
This version also includes the changes from unstable b1 version listed below.
Read about this release on our blog.
Bug fixes
- #1864: Handle overflow for svg and symbol tags in SVG images
- #1867: Remove duplicate compression of attachments
- d0ad5c1: Override use tag children instead of drawing their references
- 93df1a5: Don’t resize the same image twice when the --dpi option is set
- #1874: Drawn underline and overline behind text
Contributors
- Guillaume Ayoub
- Timo Ramsauer
- Alexander Mankuta
Backers and sponsors
- Castedo Ellerman
- Kobalt
- Spacinov
- Grip Angebotssoftware
- Crisp BV
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- NCC Group
- René Fritz
- Moritz Mahringer
- Yanal-Yvez Fargialla
- Piotr Horzycki
- Healthchecks.io
- TrainingSparkle
- Hammerbacher
- Synapsium
v59.0b1
This version is experimental, don't use it in production. If you find bugs, please report them!
Read about this release on our blog.
Command-line API
-
The
--optimize-size
option and its short equivalent-O
have been deprecated. To activate or deactivate different size optimizations, you can now use:--uncompressed-pdf
,--optimize-images
,--full-fonts
,--hinting
,--dpi <resolution>
, and--jpeg-quality <quality>
.
-
A new
--cache-folder <folder>
option has been added to store temporary data in the given folder on the disk instead of keeping them in memory.
Python API
-
Global rendering options are now given in
**options
instead of dedicated parameters, with slightly different names. It means that the signature of theHTML.render()
,HTML.write_pdf()
andDocument.write_pdf()
has changed. Here are the steps to port your Python code to v59.0:-
Use named parameters for these functions, not positioned parameters.
-
Rename some the parameters:
image_cache
becomescache
(see below),identifier
becomespdf_identifier
,variant
becomespdf_variant
,version
becomespdf_version
,forms
becomespdf_forms
,
-
-
The
optimize_size
parameter ofHTML.render()
,HTML.write_pdf()
andDocument()
has been removed and will be ignored. You can now use theuncompressed_pdf
,full_fonts
,hinting
,dpi
andjpeg_quality
parameters that are included in**options
. -
The
cache
parameter can be included in**options
to replaceimage_cache
. If it is a dictionary, this dictionary will be used to store temporary data in memory, and can be even shared between multiple documents. If it’s a folder Path or string, WeasyPrint stores temporary data in the given temporary folder on disk instead of keeping them in memory.
New features
- #1853, #1854: Reduce PDF size, with financial support from Code & Co.
- #1824, #1829: Reduce memory use for images
- #1858: Add an option to keep hinting information in embedded fonts
Bug fixes
- #1855: Fix position of emojis in justified text
- #1852: Don’t crash when line can be split before trailing spaces
- #1843: Fix syntax of dates in metadata
- #1827, #1832: Fix word-spacing problems with nested tags
Documentation
- #1841: Add a paragraph about unsupported calc() function
Contributors
- Guillaume Ayoub
- Lucie Anglade
- Alex Ch
- whi_ne
- Jonas Castro
Backers and sponsors
- Castedo Ellerman
- Kobalt
- Spacinov
- Grip Angebotssoftware
- Crisp BV
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- NCC Group
- René Fritz
- Moritz Mahringer
- Yanal-Yvez Fargialla
- Piotr Horzycki
- Healthchecks.io
- TrainingSparkle
- Hammerbacher
- Synapsium
v58.1
Bug fixes
- #1815: Fix bookmarks coordinates
- #1822, #1823: Fix vertical positioning for absolute replaced elements
Documentation
- #1814: Fix broken link pointing to samples
Contributors
- Guillaume Ayoub
- Jonas Castro
- Lucie Anglade
- Menelaos Kotoglou
Backers and sponsors
- Kobalt
- Grip Angebotssoftware
- Spacinov
- Crisp BV
- Castedo Ellerman
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- NCC Group
- René Fritz
- Moritz Mahringer
- Yanal-Yvez Fargialla
- Piotr Horzycki
- Healthchecks.io
- Hammerbacher
- TrainingSparkle
- Synapsium