All Versions
14
Latest Version
Avg Release Cycle
157 days
Latest Release
14 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v69.0 Changes
June 02, 2026β‘οΈ This is a security update (CVE-2026-49452).
β¬οΈ We strongly recommend to upgrade WeasyPrint to the latest version if you use the
--presentational-hintsoption and render untrusted HTML with restricted CSS properties.π Read about this release on our blog.
π Security
- Avoid CSS injection with HTML presentational hints.
Command-line API
- The
--srgboption has been replaced by--output-intent=srgb. Other values are possible:device-cmykfor CMYK documents with no ICC profile, or the CSS identifier of a@color-profilerule.
Python API
- 0οΈβ£ The
output_intentstring entry replaces thesrgbboolean in default options.
π Features
- π¨ #2357, #2700: Support logical properties
- π¨ #1194, #2702: Support viewport units
- π¨ #2686: Detect redirection loops early in URL fetcher
- π¨ #2735, #2737: Support SVG transform angle units
- π¨ #2636, #2720, #2773: Use HTML parsers for presentational hints
- π¨ #2631, #2778, #2785, #2788: Allow users to set PDF output intent
π Bug fixes
- π¨ #2697, #2691: Avoid endless loops in grids
- β #2709: Be less strict for gradient rasterization in tests
- π¨ #2683: Fix rendering of emojis in SVG
- π¨ #2688: Always describe font using absolute sizes
- π¨ #2676: Fix inheritance for svg/symbol tags referenced by use tags
- π #2681: Add dc:description field to PDF/A metadata
- π¨ #2680: Force first grid row rendering on empty pages
- π¨ #2690: Compute units in gradients used in border background
- π¨ #2689: Cut flex elements with fixed height and overflowing children
- β #2651, #2696: Fix tests on Debian
- π¨ #2698, #2699: Fix alignment of right-to-left elements with auto width and set min/max-width
- π¨ #2556: Apply presentational hints to svg tags
- π¨ #2706: Handle infinite border radii
- π¨ #2707, #2708, #2710: Get mimetypes from Python code instead of various third-party files
- π¨ #2717, #2580, #2740: Fix table break retry after padding overflow
- π #2769: Add year in PDF/UA-2 metadata
- π¨ #2768: Allow SVG lists of numbers to be split on + character
- π¨ #2770: Add namespace to Document tag in PDF 2
- π¨ #2771: Never try to render SVG use tags with external sources
- π¨ #2774: Fix calc in logical
- π¨ #2791: Improve management of variables
π Documentation
Contributors
- Guillaume Ayoub
- Nils K
- Rob
- Daniel Fitzpatrick
- Elango Subramani
- Lucie Anglade
- Markus Mohanty
- Tomsgu
- arjenzorgdoc
Backers and sponsors
- Spacinov
- Syslifters
- Kobalt
- Grip Angebotssoftware
- Simonsoft
- Menutech
- KontextWork
- TrainingSparkle
- Healthchecks.io
- Method B
- FieldHub
- Hammerbacher
- Yanal-Yves Fargialla
- Prothesis Dental Solutions
- Morntag
- Xavid
- Charlie S.
- PDFBolt
- Kai DeLorenzo
-
v68.1 Changes
February 06, 2026π 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 and Edge
- β #2666: Donβt rely on random default font to define test page size
- π¨ #2670: Fix pattern detection of URL schemes
- π¨ #2671: Improve API compatibility between URLFetcherResponse and addinfourl
- π¨ #2672: Fix charset for old URL fetcher requests
- π¨ #2675, #2673: Fix calc for many properties
Contributors
- Guillaume Ayoub
Backers and sponsors
- Spacinov
- Syslifters
- Kobalt
- Simon Sapin
- Grip Angebotssoftware
- Manuel Barkhau
- Simonsoft
- KontextWork
- Menutech
- TrainingSparkle
- Healthchecks.io
- Method B
- FieldHub
- Hammerbacher
- Yanal-Yves Fargialla
- Morntag
- Piloterr
- Xavid
- Charlie S.
- Prothesis Dental Solutions
- Kai DeLorenzo
-
v68.0 Changes
January 19, 2026β‘οΈ This is a security update (CVE-2025-68616).
We strongly recommend to upgrade WeasyPrint to the latest version if you use the
default_url_fetcherfunction in your custom URL fetcher, or if you use theallowed_protocolsparameter of thedefault_url_fetcherfunction.π Read about this release on our blog.
π Security
- Always use URL fetcher for HTTP redirects
Python API
default_url_fetcher()is deprecated, use the newURLFetcherclass instead, seeURL Fetchersfor more information about URL fetchersDocumentMetadata.generate_rdf_metadatais now a method that can be overridden instead of a parameter, seeFactur-X / ZUGFeRD (Electronic Invoices)for examples to create e-invoices
π Features
- π¨ #2609, #2603, #351: Refactor URL fetcher API
- π¨ #2632: Support legacy 0 value for angles
- π¨ #2627: Add font-face support to SVG
- π¨ #2646, #2255: Add font shorthand support for SVG text elements
- π¨ #2590, #1749: Honor language-specific rules for text-transform
- π¨ #2645, #2613: Improve SVG and SVG emojis rendering
- π¨ #2658, #2583: Add CLI for Factur-X / ZUGFeRD e-invoices
π Bug fixes
- π¨ #2649: Refactor URL fetcher API
- π¨ #2643, #2628: Handle box-sizing: border-box in grid layout
- π¨ #2641, #1875: Process whitespace after checking all pending targets
- π¨ #2488, #2485: Preserve page groups during layout repagination
- π¨ #2642, #2631: Donβt use isolated transparency groups
- π¨ #2637: Fix repeating radial gradients rendering
- π¨ #2622: Fix validation of colors
- π¨ #2626: Share grid items rendering advancement between a box and its copies
- π¨ #2621: Correctly handle fallback values of attr()
- π¨ #2619: Fix SVG fonts
- π¨ #2629: Always define extra skip height that may be used after
- π¨ #2648: Fix numbers validation in font-feature-settings
- π¨ #2648: Fix keyword values for text-decoration-thickness
- π¨ #2661: Respect inline images when defining minimum table width
π Documentation
- β‘οΈ #2638: Update Python command for Windows installation steps
Contributors
- Guillaume Ayoub
- Jurriaan Pruis
- Mohamed Hamed
- Alexandra Usatenko
- Andrea Corna
- Aoishik Khan
- Joe
Backers and sponsors
- Spacinov
- Syslifters
- Kobalt
- Simon Sapin
- Grip Angebotssoftware
- Manuel Barkhau
- Simonsoft
- KontextWork
- Menutech
- TrainingSparkle
- Healthchecks.io
- Method B
- FieldHub
- Hammerbacher
- Yanal-Yves Fargialla
- Morntag
- Piloterr
- Xavid
- Charlie S.
- Prothesis Dental Solutions
- Kai DeLorenzo
-
v67.0 Changes
December 02, 2025π Read about this release on our blog.
Dependencies
- π Python 3.10+ is now needed, Python 3.9 is not supported anymore
- tinycss2 1.5.0+ is now needed
- fontTools 4.59.2+ is now needed
π Features
- π¨ #2560, #640, #844, #1091, #2517: Support CMYK colors, PDF/X, color profiles and light-dark() function
- π¨ #2558, #1175: Support ::first-line, with financial support from Karte Technology
- π¨ #2552: Support CSS layers, with financial support from Code & Co.
- π¨ #2564, #2599, #2397: Allow page breaks in grid rows, with financial support from Ocean Recap
- π¨ #2568, #357: Support calc() and other mathematical functions
- π¨ #2575, #2574: Support PDF/A-1a, PDF/A-2a and PDF/A-3a
- π¨ #2611, #2573: Support PDF/A-4e and PDF/A-4f
- π¨ #2523: Display tofu for missing glyphs
- π¨ #2581: Add option to disable protocols in URL resolution
- π¨ #2570: Support rch, cap, rcap, rex, ic and ric font-relative units
- π¨ #2547, #2140: Support "only" keyword in media queries
π Bug fixes
- π¨ #2516, #1510: Fix rendering of first line of text with nested right float
- π¨ #2510, #1073, #2507: Avoid Pango crashes and font mismatches with
@font-facerules referencing local fonts - π #2532, #2531: Use fonttools instancer instead of deprecated mutator API
- π¨ #2541: Fix syntax of functions
- π¨ #2543: Allow font-related units to access
@font-facefonts - π¨ #2525: Respect top margins and avoid overlapping footnotes for columns, with financial support from Code & Co.
- π #2536: Remove Subtype key from font descriptor
- π¨ #2539: Fix min width for SVGs with intrinsic ratio but no intrinsic size
- π¨ #2537, #2533: Fix order of operators when drawing SVGs
- π¨ #2538: Donβt crash with nested unknown functions
- π¨ #2542: Donβt crash when lh and rlh are used for line height or font size
- π¨ #2540, #2528: Use locale encoding instead of filesystem encoding for font paths
- π¨ #2563, #2479: Donβt avoid float collisions for atomic flex items
- π¨ #2569: Donβt be case-sensitive for units
- π #2567, #2566: Add x-default attribute for metadata description to be compliant with PDF/A
- π¨ #2586, #2571: Improve formatting contexts management
- π¨ #2600: Fix SVG image aspect ratio when only width or height is specified
- π¨ #2612, #2595: Clean block layout and fix corner cases
- π¨ #2522: Ignore preserveAspectRatio when SVG has no viewBox
- π¨ #2544: Allow to use a variable twice in a function
- π¨ #2555: Fix flex gap in right-to-left context
- π¨ #2591: Respect non-auto widths and fix padding of grid items
- π¨ #2601: Donβt crash when tagged tables are not displayed as tables
- π¨ #2607: Fix rendering of multiline textareas with PDF forms
- π¨ #2106: Force variable initialization to avoid crashes during column layout
- π¨ #2618, #2617: Fix rendering of relative grid and flex items
π Documentation
Contributors
- Guillaume Ayoub
- Fazle Rabbi Ferdaus
- Lucie Anglade
- Luca Vercelli
- ChickenF622
- Ernie Chu
- Mark Pullin
- Malte LaukΓΆtter
- Markus Mohanty
- Yvonne Kothmeier
- Jarom Ort
- kuypan
Backers and sponsors
- Spacinov
- Syslifters
- Kobalt
- Simon Sapin
- Grip Angebotssoftware
- Manuel Barkhau
- Simonsoft
- KontextWork
- Menutech
- TrainingSparkle
- Healthchecks.io
- Method B
- FieldHub
- Hammerbacher
- Yanal-Yves Fargialla
- Morntag
- Piloterr
- Xavid
- Charlie S.
- Prothesis Dental Solutions
- Kai DeLorenzo
-
v66.0 Changes
July 24, 2025π Read about this release on our blog.
π Features
- π¨ #2475: Add support for 'lh' and 'rlh' units
- π¨ #2432, #2437: Report footnotes when text overflows because of orphans, with financial support from Code & Co.
- π¨ #2256, #2466: Handle transform-origin in SVG
- π¨ #2445: Add parameter to have additional HTTP headers for url_fetcher
π Bug fixes
- π¨ #2471, #2506, #2500, #2460, #2363, #2470, #1872, #2153, #1838, #1837, #1784, #1835, #2444, #2497, #2505, #2503, #1836, #2467: Improve PDF/UA support, with financial support from NLnet
- π¨ #2425, #1557: Improve position of outside markers
- π¨ #2409, #2265: Draw circles instead of rectangles when drawing dotted borders
- π¨ #2416, #2270: Correctly split words for automatic hyphenation
- π¨ #2439, #2426: Donβt rely on URL protocols outside URL fetcher function
- π #2433: Disable style for deprecated outline algorithm
- π¨ #2447, #2441, #2448: Improve min- and max-content calculation, with financial support from Menutech
- π¨ #2454, #2442, #2449: Minor fixes for flex layout
- π¨ #2473, #2459: Include out-of-flow boxes in page layout progress, with financial support from Pathfindr
- π #2458: Replace deprecated warn logger function
- π¨ #2494, #1856: Fix bug with bottom margins in columns
- π¨ #2435: Make footnote calls inherit from footnotes
- π¨ #2484, #2456: Allow to avoid page breaks after table-row-group elements
- π¨ #2450: Draw background and borders for relative grid containers
- π¨ #2453: Donβt advance position_y for collapsed margins of discarded children
- π¨ #2493: Fix endless loop with CSS variables referencing each other
- π¨ #2502: Ignore bottom margin when calculating footnote overflow
Contributors
- Guillaume Ayoub
- Lucie Anglade
- Alvaro Garcia Fernandez
- Emmanuel Ferdman
- Gabriel Corona
- Markus Mohanty
- Luca Vercelli
- Tre Huang
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Syslifters
- Simon Sapin
- Manuel Barkhau
- Simonsoft
- Menutech
- KontextWork
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- DocRaptor
- Yanal-Yves Fargialla
- Method B
- FieldHub
- Morntag
- Xavid
- Kai DeLorenzo
- Charlie S.
- Alan Villalobos
-
v65.1 Changes
April 14, 2025π Bug fixes
- π¨ #2414: Correctly handle flex columns split between pages
- π¨ 1b24ad9: Include padding in outer size of item elements
- 0οΈβ£ #2419: Set main tag as block by default
- π¨ #2415: Fix support of replaced block box as flex items
- π¨ 83da2fe0: Fix margins and padding for rtl lists
- π¨ #2429, #1076, #2431: Fix page groups
Contributors
- Guillaume Ayoub
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Syslifters
- Simon Sapin
- Manuel Barkhau
- Simonsoft
- Menutech
- KontextWork
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- DocRaptor
- Yanal-Yves Fargialla
- Method B
- FieldHub
- Morntag
- Xavid
- Kai DeLorenzo
- Charlie S.
- Alan Villalobos
-
v65.0 Changes
March 20, 2025π Read about this release on our blog.
Dependencies
- CSSSelect2 0.8.0 is now needed
π Features
- π¨ #1665: Support gap properties in Flex layout, with financial support from NLnet.
- π¨ #378, #2405: Handle
@font-faceunicode-range - π #2394: Modernize and improve default user agent stylesheets
π Bug fixes
- π¨ #2362, #2387, #601, #1967, #1805, #2163, #2342, #2374, #1109, #1356, #1327, #1563, #1652, #2351, #2312, #2340, #1311, #2066, #2359, #2053: Improve Flex layout, with financial support from NLnet.
- π¨ #1686, #2404: Fix duplicate text selection with right-to-left text
- π¨ #2372, #2389: Fix justification of right-to-left text
- π¨ #2403: Fix emoji rendering with older versions of Pango
- π¨ #2392: Fix complex cases involving nested SVG text anchors
- π¨ #2396, #2398: Fix and improve font names in PDF
- π¨ #2269, #2390: Apply justification to non-breaking spaces
- π¨ #2362, #2387: Improve Flex layout, with financial support from NLnet.
Contributors
- Guillaume Ayoub
- Luca Vercelli
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Syslifters
- Simon Sapin
- Manuel Barkhau
- Simonsoft
- Menutech
- KontextWork
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- DocRaptor
- Yanal-Yves Fargialla
- Method B
- FieldHub
- Morntag
- Xavid
- Kai DeLorenzo
- Charlie S.
- Alan Villalobos
-
v64.1 Changes
February 20, 2025π Bug fixes
- π¨ #2368: Fix ascent and descent font values
- π¨ #2370: Avoid endless recursion for variables in nested functions
- π¨ #2275: Use correct containing block to render waiting children
- π¨ #2375: Ensure that we handle text-anchor only on text content elements
- π¨ #2090: Only create font temporary folder when adding fonts
- π¨ #2383: Fix grid-template-areas validation and allow uppercase identifiers for grid lines
Contributors
- Guillaume Ayoub
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Syslifters
- Simon Sapin
- Manuel Barkhau
- Simonsoft
- Menutech
- KontextWork
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- DocRaptor
- Yanal-Yves Fargialla
- Method B
- FieldHub
- Morntag
- Xavid
- Kai DeLorenzo
- Charlie S.
-
v64.0 Changes
January 30, 2025π Read about this release on our blog.
π Features
- π #2338: Allow custom RDF metadata for PDF/A and eInvoices
- π¨ #123, #2345: Handle small-caps synthesis
- π¨ #2343: Support outline-offset
- π¨ #2361: Support text-underline-offset and text-decoration-thickness
- π¨ #2296: Donβt crash with tables with rounded corners split between pages
π Bug fixes
- π¨ #2360: Fix gradients with non-RGB colors
- π¨ #2355, #2358: Align png emojis to the surrounding text
- π¨ #2353: Fix alignment of SVG text with multiple nested text-anchor values
- π #2350: Fix logging restoration in capture_logs
- π¨ #2341: Fix page groups
- π¨ #2314: Use CSS 'image-rendering' attribute for images in SVGs
- π¨ #2332: Fix opacity for translated SVG elements
- #2329: Refactor text.line_break.get_log_attrs
- π¨ #2325, #2326: Fix table overflow edge cases
π Performance
π Documentation
- π #2352: Add more use cases in documentation, use Furo theme
Contributors
- Guillaume Ayoub
- Kesara Rathnayake
- Xavid Pretzer
- David Tagatac
- Ernesto Ruge
- Niko Abeler
- Noam Kushinsky
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Syslifters
- Simon Sapin
- Manuel Barkhau
- Simonsoft
- Menutech
- KontextWork
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- DocRaptor
- Yanal-Yves Fargialla
- Method B
- FieldHub
- Morntag
- Xavid
- Kai DeLorenzo
- Charlie S.
-
v63.1 Changes
December 10, 2024Dependencies
- π #2297: Remove upper bounds for dependencies
π Bug fixes
- π¨ #2300, #2292: Donβt avoid floats for flex items
- π¨ #2301, #2293: Include floats in calculation of minimum cell height
- π¨ #2303, #2302: Set alpha even when current color channels didnβt change
- π¨ #2306: Donβt try to increase column width when thereβs no extra width
- π¨ #2304: Donβt forget skip stack when drawing flex items
- π¨ #2316: Donβt crash with SVG symbols
- π¨ #2320: Fix currentcolor detection when parsing gradient color stops
- π #2322, #2289: Donβt add DLL directories when using Windows executable
- β #2323, #2305: Fix different rendering test
π Performance
- π¨ #2319: Fix memory leaks
π Documentation
- β‘οΈ #2299: Update install instructions for Alpine
- π¨ #2321: Add example invocation of WeasyPrint on the "Contribute" page
Contributors
- Guillaume Ayoub
- JΓ³ Γgila Bitsch
- Lucie Anglade
- Alexander Gitter
- Luke Cousins
Backers and sponsors
- Spacinov
- Kobalt
- Grip Angebotssoftware
- Syslifters
- Manuel Barkhau
- SimonSoft
- Menutech
- KontextWork
- Simon Sapin
- TrainingSparkle
- Healthchecks.io
- Hammerbacher
- Advance Insight
- Docraptor
- Method B
- FieldHub
- Yanal-Yvez Fargialla
- Morntag
- Xavid