NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #561 most downloaded on PyPI
The Awesome Document Factory
Last release 26 days ago
08 Sep 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
120 releases · first in 2011
This is a security update ( CVE-2026-55073 , GHSA-r543-q48m-4c9j ).
Read about this release on our blog.
This is a security update (CVE-2026-55073, GHSA-r543-q48m-4c9j).
We strongly recommend to upgrade WeasyPrint to the latest version if you: * embed untrusted images, or * rely on the URL fetcher to filter metadata or stylesheets passed as Python parameters.
One column per quarter.
This is a security update ( CVE-2026-49452 ).
This is a security update (CVE-2026-49452).
We strongly recommend to upgrade WeasyPrint to the latest version if you use the --presentational-hints option and render untrusted HTML with restricted CSS properties.
Read about this release on our blog.
--srgb option has been replaced by --output-intent=srgb. Other values are possible: device-cmyk for CMYK documents with no ICC profile, or the CSS identifier of a @color-profile rule.output_intent string entry replaces the srgb boolean in default options.Bug fixes #2662 : Don’t crash when SVG clip paths are not in defs tags #2665 : Fix position of box bounding box #2663 : Fix transparency with Acrobat
This is a security update ( CVE-2025-68616 ).
This is a security update (CVE-2025-68616).
We strongly recommend to upgrade WeasyPrint to the latest version if you use the default_url_fetcher function in your custom URL fetcher, or if you use the allowed_protocols parameter of the default_url_fetcher function.
Read about this release on our blog.
default_url_fetcher() is deprecated, use the new URLFetcher class instead, see URL Fetchers for more information about URL fetchersDocumentMetadata.generate_rdf_metadata is now a method that can be overridden instead of a parameter, see Factur-X / ZUGFeRD (Electronic Invoices) for examples to create e-invoicesRead about this release on our blog .
Read about this release on our blog.
@font-face rules referencing local fonts@font-face fontsRead about this release on our blog .
Read about this release on our blog.
1b24ad9 : Include padding in outer size of item elements
Read about this release on our blog .
Read about this release on our blog.
@font-face unicode-rangeBug fixes #2368 : Fix ascent and descent font values #2370 : Avoid endless recursion for variables in nested functions #2275 : Use correct containing
Read about this release on our blog .
Read about this release on our blog.
Dependencies #2297 : Remove upper bounds for dependencies Bug fixes #2300 , #2292 : Don’t avoid floats for flex items #2301 , #2293 : Include floats i
Read about this release on our blog.
Read about this release on our blog.
mask-border-* propertiessvg tags with no sizeflex-direction: columnnormal column gapsbreak-inside: avoid for flex items61f8bb3: Set default PDF variant values in options before generating PDF
8cdd66f: Fix CSS nesting for nested selectors with comma
c10c6892: Display at least one grid row on empty pages
Released on 2024-05-06.
Bug fixes:
#2144, #2149: Avoid broken fonts when generating multiple documents
c10c6892: Display at least one grid row on empty pages
#2146: Don’t crash when flex container’s parent’s height is auto
Contributors:
Guillaume Ayoub
Claudius Ellsel
Backers and sponsors:
Spacinov
Kobalt
Grip Angebotssoftware
Manuel Barkhau
SimonSoft
Menutech
KontextWork
Simon Sapin
René Fritz
TrainingSparkle
Healthchecks.io
Docraptor
Yanal-Yves Fargialla
Douwe van Loenen
Morntag
Xavid
Read about this release on our blog.
Read about this release on our blog.
Backers and sponsors:
We strongly recommend to upgrade WeasyPrint to the latest version if you use WeasyPrint 61.0 or 61.1. Older versions are not impacted.
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.
Released on 2024-03-08.
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-Yves Fargialla
Morntag
NBCO
Don’t crash when SVG file can’t be rendered
Released on 2024-02-26.
Read about this release on our blog.
Read about this release on our blog.
DocumentMetadata.attachments is now a list of Attachment objects, not
a list of (url, description) tuples.23cfc775: Draw background behind absolutely positioned replaced boxes
Released on 2023-12-11.
Bug fixes:
#1982: Fix SVG markers size, position and drawing
23cfc775: Draw background behind absolutely positioned replaced boxes
fe2f0c69: Don’t crash with bitmap fonts with no "glyf" table
14605225: 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-Yves Fargialla
WakaTime
Paheko
Synapsium
DocRaptor
## Bug fixes * #1973: Fix crash caused by wrong UTF-8 indices ## Contributors * Guillaume Ayoub ## Backers and sponsors * Spacinov * Kobalt * Grip Ang
Released on 2023-09-29.
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-Yves Fargialla
WakaTime
Paheko
Synapsium
DocRaptor
Read about this release on our blog.
Read about this release on our blog.
<wbr> tagThis version also includes the changes from unstable b1 version listed below.
This version also includes the changes from unstable b1 version listed below.
Read about this release on our blog.
The --optimize-size option and its short equivalent -O have been deprecated. To activate or deactivate different size optimizations, you can now use:
This version is experimental, don't use it in production. If you find bugs, please report them!
Read about this release on our blog.
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.
Global rendering options are now given in **options instead of dedicated parameters, with slightly different names. It means that the signature of the HTML.render(), HTML.write_pdf() and Document.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 becomes cache (see below),identifier becomes pdf_identifier,variant becomes pdf_variant,version becomes pdf_version,forms becomes pdf_forms,The optimize_size parameter of HTML.render(), HTML.write_pdf() and Document() has been removed and will be ignored. You can now use the uncompressed_pdf, full_fonts, hinting, dpi and jpeg_quality parameters that are included in **options.
The cache parameter can be included in **options to replace image_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.
## Bug fixes * #1815: Fix bookmarks coordinates * #1822, #1823: Fix vertical positioning for absolute replaced elements ## Documentation * #1814: Fix
Released on 2023-03-07.
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-Yves Fargialla
Piotr Horzycki
Healthchecks.io
Hammerbacher
TrainingSparkle
Synapsium
This version also includes the changes from unstable b1 version listed below.
This version also includes the changes from unstable b1 version listed below.
Read about this release on our blog.
Released on 2023-02-17.
This version also includes the changes from unstable b1 version listed below.
Bug fixes:
#1807: Don’t crash when out-of-flow box is split in out-of-flow parent
#1806: Don’t crash when fixed elements aren’t displayed yet in aborted line
#1809: Fix background drawing for out-of-the-page transformed boxes
Contributors:
Guillaume Ayoub
Backers and sponsors:
Kobalt
Grip Angebotssoftware
Crisp BV
Spacinov
Castedo Ellerman
Manuel Barkhau
SimonSoft
Menutech
KontextWork
NCC Group
René Fritz
Moritz Mahringer
Yanal-Yves Fargialla
Piotr Horzycki
Healthchecks.io
This version is experimental, don't use it in production. If you find bugs, please report them!
This version is experimental, don't use it in production. If you find bugs, please report them!
Read about this release on our blog.
Released on 2023-02-03.
This version is experimental, don't use it in production. If you find bugs, please report them!
New features:
#61, #1796: Support PDF forms, with financial support from Personalkollen
#1173: Add style for form fields
Bug fixes:
Contributors:
Guillaume Ayoub
Lucie Anglade
Backers and sponsors:
Kobalt
Grip Angebotssoftware
Crisp BV
Spacinov
Castedo Ellerman
Manuel Barkhau
SimonSoft
Menutech
KontextWork
NCC Group
René Fritz
Moritz Mahringer
Yanal-Yves Fargialla
Piotr Horzycki
Healthchecks.io
0f2e377: Print annotations with PDF/A
@font-face declarations2b05137: Fix stability of font identifiers
read_text function when files is availableThis version also includes the changes from unstable b1 version listed below.
This version also includes the changes from unstable b1 version listed below.
Read about this release on our blog.
This version is experimental, don't use it in production. If you find bugs, please report them!
This version is experimental, don't use it in production. If you find bugs, please report them!
Read about this release on our blog.
## Bug fixes * #1674: Follow max-height on footnot area, with financial support from Code & Co. * #1678: Fix gradients with opacity set ## Contributor
Released on 2022-07-24.
Bug fixes:
#1674: Follow max-height on footnot area, with financial support from Code & Co.
#1678: Fix gradients with opacity set
Contributors:
Guillaume Ayoub
Lucie Anglade
Backers and sponsors:
Grip Angebotssoftware
Manuel Barkhau
Crisp BV
SimonSoft
Menutech
Spacinov
KontextWork
René Fritz
NCC Group
Kobalt
Tom Pohl
Moritz Mahringer
Florian Demmer
Yanal-Yves Fargialla
Gábor
Piotr Horzycki
Andrew Ittner
This version also includes the changes from unstable b1 version listed below.
This version also includes the changes from unstable b1 version listed below.
Read about this release on our blog.
This version is experimental, don't use it in production. If you find bugs, please report them!
This version is experimental, don't use it in production. If you find bugs, please report them!
Read about this release on our blog.
This version also includes the changes from unstable b1 version listed below.
This version also includes the changes from unstable b1 version listed below.
Read about this release on our blog.
This version is experimental, don't use it in production. If you find bugs, please report them!
This version is experimental, don't use it in production. If you find bugs, please report them!
Read about this release on our blog.
word-break: break-allinherit in shorthand propertiestext-decoration propertiesch and ex units calculations## Bug fixes * #1588 Support position: absolute in footnotes * #1586 Fix discarded text-align values ## Contributors * aschmitz * Guillaume Ayoub ## B
Released on 2022-04-04.
Bug fixes:
Contributors:
aschmitz
Guillaume Ayoub
Backers and sponsors:
Grip Angebotssoftware
Manuel Barkhau
Crisp BV
SimonSoft
Menutech
KontextWork
Maykin Media
René Fritz
NCC Group
Spacinov
Nathalie Gutton
Andreas Zettl
Tom Pohl
Kobalt
Moritz Mahringer
Florian Demmer
Yanal-Yves Fargialla
Gábor
Piotr Horzycki
DeivGuerrero
## Bug fixes * #1575: Always store parent blocks children as lists * #1574, #1559: Fix float rounding errors * #1571: Ignore unknown glyphs * #1561, #
## Features * #1547: Handle break-inside: avoid on tr tags ## Bug fixes * #1540, #1239: Handle absolute children in running elements * #1538: Handle i
Released on 2022-01-31.
New features:
#1547: Handle break-inside: avoid on tr tags
Bug fixes:
Contirbutors:
Guillaume Ayoub
Lucie Anglade
Backers and sponsors:
H-Net: Humanities and Social Sciences Online
Grip Angebotssoftware
Manuel Barkhau
SimonSoft
Menutech
KontextWork
Crisp BV
Maykin Media
René Fritz
Simon Sapin
NCC Group
Nathalie Gutton
Andreas Zettl
Tom Pohl
Spacinov
Des images et des mots
Moritz Mahringer
Florian Demmer
Yanal-Yves Fargialla
Gábor
Piotr Horzycki
This version also includes the changes from unstable v54.0b1.
This version also includes the changes from unstable v54.0b1.
Read more on CourtBouillon’s blog.
Released on 2022-01-08.
This version also includes the changes from unstable b1 version listed below.
Bug fixes:
#1531: Always use absolute paths to get hrefs in SVG
#1523: Fix many rendering problems of broken tables
e1aee70: Fix support of fonts with SVG emojis
Contirbutors:
Guillaume Ayoub
Backers and sponsors:
Grip Angebotssoftware
Manuel Barkhau
SimonSoft
Menutech
KontextWork
Crisp BV
Maykin Media
René Fritz
Simon Sapin
NCC Group
Nathalie Gutton
Andreas Zettl
Tom Pohl
Des images et des mots
Moritz Mahringer
Florian Demmer
Yanal-Yves Fargialla
Gábor
Piotr Horzycki
This version is experimental, don't use it in production. If you find bugs, please report them!
This version is experimental, don't use it in production. If you find bugs, please report them!
Read about this release on our blog.
text-align-last and text-align-all propertiesoverflow-wrap: anywhereuse tagstext-transform text for content-based usescolumn-span contenttarget-counter attribute in flex itemssetup.py file anymore. You can find more information about this in #1410.abd54c4: Set SVG ratio when width and height are 0
## Bug fixes * #1431, #1440: Fix crashes and malformed PDF files * #1430: Handle cx and cy in SVG rotations * #1436: Fix marker-start being drawn on m
## New features * #1428: Re-add the make_bookmark_tree() method ## Bug fixes * #1429: Fix package deployed on PyPI ## Contributors * Guillaume Ayoub #
make_bookmark_tree() methodReleased on 2021-08-27.
New features:
#1428: Re-add the make_bookmark_tree() method
Bug fixes:
#1429: Fix package deployed on PyPI
Contributors:
Guillaume Ayoub
Backers and sponsors:
Grip Angebotssoftware
PDF Blocks
SimonSoft
Menutech
Manuel Barkhau
Simon Sapin
KontextWork
René Fritz
Maykin Media
NCC Group
Des images et des mots
Andreas Zettl
Nathalie Gutton
Tom Pohl
Moritz Mahringer
Florian Demmer
Yanal-Yves Fargialla
## Bug fixes * #1409: Don’t crash when leaders are in floats * #1414: Embed images once * #1417: Fix crash with SVG intrinsic ratio ## Documentation *
make_bookmark_tree from documentationweasyprint.tools removal in documentationReleased on 2021-08-22.
Bug fixes:
#1409: Don’t crash when leaders are in floats
#1414: Embed images once
#1417: Fix crash with SVG intrinsic ratio
Documentation:
#1422: Include weasyprint.tools removal in documentation
Contributors:
Guillaume Ayoub
Backers and sponsors:
Grip Angebotssoftware
PDF Blocks
SimonSoft
Menutech
Manuel Barkhau
Simon Sapin
KontextWork
René Fritz
Maykin Media
NCC Group
Des images et des mots
Andreas Zettl
Nathalie Gutton
Tom Pohl
Moritz Mahringer
Florian Demmer
Yanal-Yves Fargialla
--format and --resolution options have been deprecated, PDF is the only output format supported.
This version also includes the changes from unstable b1 and b2 versions listed below.
Read about this release on our blog.
FontConfiguration is now in the weasyprint.text.fonts module.--format and --resolution options have been deprecated, PDF is the only output format supported.--optimize-images option has been deprecated and replaced by --optimize-size, allowing images, fonts, all and none values.weasyprint.tools have been removed.Document.resolve_links, Document.make_bookmark_tree and Document.add_hyperlinks have been removed.This version is experimental, don't use it in production. If you find bugs, please report them!
This version is experimental, don't use it in production. If you find bugs, please report them!
This version is experimental, don't use it in production. If you find bugs, please report them!
This version is experimental, don't use it in production. If you find bugs, please report them!
This version uses its own PDF generator instead of Cairo. Rendering may be different for text, gradients, SVG images…
Released on 2021-04-22.
This version is experimental, don't use it in production. If you find bugs, please report them!
Dependencies:
This version uses its own PDF generator instead of Cairo. Rendering may be different for text, gradients, SVG images…
Packaging is now done with Flit.
New features:
Bug fixes:
#504: Fix rendering bugs with PDF gradients
#606: Fix rounding errors on PDF dimensions
#1264: Include witdh/height when calculating auto margins of absolute boxes
#1191: Don’t try to get an earlier page break between columns
#1235: Include padding, border, padding when calculating inline-block width
#1199: Fix kerning issues with small fonts
Documentation:
#1298: Rewrite documentation
Contributors:
Guillaume Ayoub
Lucie Anglade
Felix Schwarz
Syrus Dark
Christoph Päper
Backers and sponsors:
Simonsoft
PDF Blocks
Menutech
Manuel Barkhau
Simon Sapin
Nathalie Gutton
Andreas Zettl
René Fritz
Tom Pohl
KontextWork
Moritz Mahringer
Florian Demmer
Maykin Media
Yanal-Yves Fargialla
Des images et des mots
Yevhenii Hyzyla
## Bug fixes * #1336: Fix text breaking exception * #1318: Fix @font-face rules with Pango 1.48.3+ ## Contributors * Guillaume Ayoub ## Backers and sp
@font-face rules with Pango 1.48.3+Released on 2021-04-17.
Bug fixes:
Contributors:
Guillaume Ayoub
Backers and sponsors:
Simonsoft
PDF Blocks
Menutech
Manuel Barkhau
Simon Sapin
Nathalie Gutton
Andreas Zettl
René Fritz
Tom Pohl
KontextWork
Moritz Mahringer
Florian Demmer
Maykin Media
Yanal-Yves Fargialla
Des images et des mots
Yevhenii Hyzyla
ece5f066: Avoid crash on last word detection
## Bug fixes * #1299: Fix imports with url() and quotes ## New features * #1300: Add support of line-clamp, with financial support from expert Germany
a6f9c80: Add a nice gif to please gdk-pixbuf 2.42.0
Released on 2020-12-06.
Bug fixes:
238e214: Fix URL handling with tinycss2
#1248: Include missing test data
#1254: Top margins removed from children when tables are displayed on multiple pages
#1250: Correctly draw borders on the last line of split tables
a6f9c80: Add a nice gif to please gdk-pixbuf 2.42.0
Contributors:
Guillaume Ayoub
Lucie Anglade
Felix Schwarz
Backers and sponsors:
PDF Blocks
Simonsoft
Menutech
Simon Sapin
Nathalie Gutton
Andreas Zetti
Tom Pohl
Florian Demmer
Moritz Mahringer
238e214: Fix URL handling with tinycss2
Released on 2020-11-02.
Bug fixes:
238e214: Fix URL handling with tinycss2
Contributors:
Guillaume Ayoub
Backers and sponsors:
Simonsoft
Simon Sapin
Nathalie Gutton
Andreas Zettl
Florian Demmer
Moritz Mahringer
Python 3.6+ is now needed, Python 3.5 is not supported anymore
counter-settemplate tagsdownload attribute in a tags for attachment's filenamelist-style-typevar() functions in content declarationsbody overflowtext-indent twice on inline blocks--quiet CLI option in the documentation7a4d6f8: Support larger and smaller values for font-size
element() and running()larger and smaller values for font-sizestring-set is set to nonevar() values## New features * #209: Make break-* properties work inside tables * #661: Make blocks with overflow: auto grow to include floating children ## Bug fi
break-* properties work inside tablesoverflow: auto grow to include floating childrenSpeed and memory use have been largely improved.
::marker pseudo-selectorrecto and verso parameters for page breakslogger.warn anymorestate to the make_bookmark_tree documentation## Dependencies - CairoSVG 2.4.0+ is now needed ## New features - #891: Handle text-overflow - #878: Handle column-span - #855: Handle all the text-de
text-overflowcolumn-spantext-decoration featuresobject-fit and object-positionbookmark-state## New features * #843: Handle CSS variables * #846: Handle :nth() page selector * #847: Allow users to use a custom SSL context for HTTP requests ##
:nth() page selectormargin-break: auto## New features * #771: Handle box-decoration-break * #115: Handle margin-break * #821: Continuous integration includes tests on Windows ## Bug fixes
\nurl_fetcherYour coding agent can read these notes before it upgrades. Set up the MCP server →