Changelog
PlutoPrint 0.20.0 (2026-04-14)
Bump PlutoBook to v0.17.0
Add support for
insetshorthand propertyAdd support for
lh,rlh,cap,rcap,ic,ric,rex, andrchunitsAllow flexible emoji selection for primary font
Allow
nonein background shorthand parsingReject invalid CSS value types
Reject trailing tokens in
border-radiusshorthand parsingDefer font shorthand property emission until full parsing succeeds
Improve media query parsing, error recovery, and feature comparison
Remove unnecessary whitespace from SVG string properties
Backers and sponsors:
PlutoPrint 0.19.0 (2026-03-19)
Bump PlutoBook to v0.16.0
Add full CSS
:lang()locale supportAdd language-specific default quotes
Fix
calc()not preserving unitless resultsFix font fallback for grapheme clusters
Fix emoji variation selector detection
Fallback to monochrome when color glyphs are unavailable
Force layout during pagination to fix mismatched layouts
Include query component in base URL resolution
Enforce strict parsing for CSS
matrix()andrect()Reduce memory usage by avoiding redundant CSS property storage
Backers and sponsors:
PlutoPrint 0.18.0 (2026-02-17)
Bump PlutoBook to v0.15.0
Add support for emoji variation selectors
Fast skip painting off-screen table content
Fix synthetic oblique slope range check
Fix table cell border attribute mapping
Fix
empty-cellspainting in separate border model
Backers and sponsors:
PlutoPrint 0.17.0 (2026-02-09)
Bump PlutoBook to v0.14.0
Add selector filter for fast CSS selector rejection
Add lazy loading support for CSS
@font-facesourcesAdd support for padding in page boxes
Fix double slanting of remote CSS
@font-facefontsFix fallback handling in SVG paint application
Fix rounding errors in fragment offsets, line, and flex layout
Apply page scale to page margin boxes
Reorder header and footer painting to fix collapsed border rendering
Revert change ensuring empty list items with outside markers generate boxes
Backers and sponsors:
PlutoPrint 0.16.0 (2026-01-14)
Bump PlutoBook to v0.13.0
Support repeating table headers and footers
Support column group background painting and border resolution
Support absolute and fixed positioning inside page margin boxes
Fix table row and cell height sizing
Fix table column and row span width and padding calculations
Fix collapsed table border resolution order for adjacent columns
Prevent page breaks inside table rows
Remove table padding for collapsed border
Refactor fontconfig path initialization
Add custom Meson search for plutobook library and headers
Backers and sponsors:
PlutoPrint 0.15.0 (2025-12-23)
Bump PlutoBook to v0.12.0
Add support for the
widthstyle attribute ontd,th,col, andcolgroupelementsSupport outline painting for table rows and sections
Fix unnecessary pseudo-element box generation when content is
noneornormal
Backers and sponsors:
PlutoPrint 0.14.0 (2025-12-05)
Bump PlutoBook to v0.11.2
Fix
:has()matching by preventing premature return so all sub-selectors are evaluatedHandle UTF-8 filenames on Windows when opening output files
Skip zero-width spaces during text rendering to prevent invisible characters in PDF output
Add
plutobook_set_fontconfig_path()to setFONTCONFIG_PATHfor PlutoBookFix UTF-8 path handling on Windows
Backers and sponsors:
PlutoPrint 0.13.1 (2025-11-23)
Bump PlutoBook to v0.11.1
Fix URL resolution for Windows absolute paths by mapping them to proper
file://URLsAdd
cairo-fix-font-options-leaks.patchto address memory leaks in Cairo
Backers and sponsors:
PlutoPrint 0.13.0 (2025-11-17)
Bump PlutoBook to v0.11.0
Add support for
<base>tag to resolve relative URLsAdd support for
font-variant-emojiAdd support for
min-content,max-content, andfit-contentinflexshorthandAdd support for
:local-linkselectorAdd support for
:hasselectorAdd support for
:whereselectorAdd
line-height: normalto::markerto prevent inheritedline-heightissuesFix
:nth-of-typeand:nth-last-of-typesibling countingFix
:nth()page selector matchingFix CSS
:lang()selector matchingFix CSS selector specificity calculation to match W3C specification
Fix Windows Fontconfig failing to load its default config files
Refactor
alignandhiddenpresentational attributesReset form control
font-sizeto match most browsersFully implement
format()support in@font-faceto skip unsupported font sourcesAdd some subset of ready-made counter styles (
binary,octal,lower-hexadecimal,upper-hexadecimal)Fix default border value for table elements
Account for relative positioning offsets when computing static distances
Handle RTL direction when computing horizontal relative offsets
Backers and sponsors:
PlutoPrint 0.12.0 (2025-10-03)
Bump PlutoBook to v0.10.0
Add support for running headers and footers
Add support for CSS
min(),max()andclamp()functionsAdd support for
unicode-rangein@font-facefor selective font coverageAdd support for
typeandfallbackinattr()functionPrioritize color emoji fonts during font selection
Use
serifas the last-resort fallback fontHandle UTF-8 BOM
Backers and sponsors:
PlutoPrint 0.11.0 (2025-09-20)
Bump PlutoBook to v0.9.0
Add support for CSS Custom Properties
Add support for CSS
calc()function with length valuesAdd support for extended
rgb()andhsl()functions with whitespace and alpha slash syntaxAdd support for CSS
hwb()color functionAdd support for CSS wide keyword
unset
Backers and sponsors
PlutoPrint 0.10.0 (2025-09-09)
Bump PlutoBook to v0.8.0
Add support for
space-evenlyin flex layoutAdd support for presentational attributes on
<li>and<ol>Fix table height computation for positioned tables
Ensure empty list items with outside markers generate boxes
Set PDF creation date metadata in CLI to current timestamp
PlutoPrint is now available via Homebrew :)
PlutoPrint 0.9.0 (2025-08-30)
Bump PlutoBook to v0.7.0
Add support for
row-gap,column-gap, andgapin flex layoutAdd support for CSS hex alpha notation
Fix flex layout to avoid shrinking table boxes below min preferred width
Fix flex layout to avoid shrinking table height
Fix table section height calculation to avoid double-counting border spacing
Fix preferred width calculation for replaced boxes
PlutoPrint 0.8.0 (2025-08-27)
Bump PlutoBook to v0.6.0
Add support for
-pluto-qrcode()in CSScontentproperty for embedding QR codesFix uninitialized table members causing large cell
paddingandborder
PlutoPrint 0.7.0 (2025-08-26)
Bump PlutoBook to v0.5.0
Add support for
overflow-wrapin inline line-breaking algorithmFix
text-indentoffset calculation in block-level inline formattingFix parser for
text-decoration-lineto returnnullptrwhen no values are consumedFix luminance mask computation
Provide precompiled binaries for:
cp310-macosx_14_0_arm64cp311-macosx_14_0_arm64cp312-macosx_14_0_arm64cp313-macosx_14_0_arm64cp314-macosx_14_0_arm64
PlutoPrint 0.6.0 (2025-08-24)
Bump PlutoBook to v0.4.0
Add support for
text-orientationandwriting-modePNG export outputs a single continuous image (no pagination)
PlutoPrint 0.5.0 (2025-08-19)
Replace the
formatparameter withwidthandheightparameters inBook.write_to_png()andBook.write_to_png_stream()
PlutoPrint 0.4.1 (2025-08-17)
Fix
ResourceFetcherinstantiation error
PlutoPrint 0.4.0 (2025-08-17)
Add
DefaultResourceFetcher, a default implementation ofResourceFetcherwith configuration methods for SSL and HTTP behavior:DefaultResourceFetcher.set_ssl_cainfo()- set path to a trusted CA certificate fileDefaultResourceFetcher.set_ssl_capath()- set path to a trusted CA certificate directoryDefaultResourceFetcher.set_ssl_verify_peer()- enable or disable SSL peer verificationDefaultResourceFetcher.set_ssl_verify_host()- enable or disable SSL host name verificationDefaultResourceFetcher.set_http_follow_redirects()- enable or disable automatic HTTP redirectsDefaultResourceFetcher.set_http_max_redirects()- set maximum number of HTTP redirectsDefaultResourceFetcher.set_http_timeout()- set maximum time for an HTTP request
Extend
plutoprintCLI with additional arguments for network configuration:--ssl-cainfo- specify an SSL CA certificate file--ssl-capath- specify an SSL CA certificate directory--no-ssl- disable SSL verification (not recommended)--no-redirects- disable following HTTP redirects--max-redirects- specify maximum number of HTTP redirects--timeout- specify the HTTP timeout in seconds
PlutoPrint 0.3.0 (2025-08-14)
Provide precompiled binaries for:
Linux:
cp310-manylinux_2_28_x86_64,cp311-manylinux_2_28_x86_64,cp312-manylinux_2_28_x86_64,cp313-manylinux_2_28_x86_64,cp314-manylinux_2_28_x86_64Windows:
cp310-win_amd64,cp311-win_amd64,cp312-win_amd64,cp313-win_amd64,cp314-win_amd64
Update
requires-pythonto>=3.10Add functions for runtime access to version and build metadata from the underlying PlutoBook library:
Add
--infoargument to theplutoprintCLI
PlutoPrint 0.2.0 (2025-06-23)
Add Read the Docs support
Refactor error handling for clarity and robustness
Implement
==and!=forPageMarginsandPageSizeUse
is not Nonefor CLI argument presence checksFix dimensions in
PAGE_SIZE_LEDGERconstantAdd comprehensive unit tests
PlutoPrint 0.1.0 (2025-05-24)
This is the first release. Everything is new. Enjoy!