PeachPDF 0.8.0 Release Notes
Breaking Changes
SixLabors dependencies removed. PeachPDF no longer depends on SixLabors.ImageSharp or SixLabors.Fonts. Image decoding is now handled by StbImageSharp, and font parsing uses an internal TtfFontDescription implementation. Projects that relied on indirect SixLabors transitive dependencies will need to add them directly if still needed elsewhere.
New Features
CSS Generated Content
- Implemented
string-setproperty and thestring()function for running headers/footers. - Added support for the
contentCSS function, enabling::before/::afterpseudo-element content generation.
WOFF / WOFF2 Web Font Embedding
- PeachPDF can now accept WOFF and WOFF2 font files directly. They are automatically converted to OpenType before embedding in the PDF output (zlib decompression for WOFF; Brotli + inverse transforms for WOFF2).
- Correct PDF embedding is applied: TrueType fonts use
/FontFile2; CFF/OTF fonts use/FontFile3with theOpenTypesubtype.
Table Header / Footer Repetition
- Repeating table headers and footers are now correctly positioned when a table begins beyond the first page. Previously, the page-number counter always started at 0, placing headers/footers at wrong Y positions for multi-table documents.
Bug Fixes
Page Breaks
- Fixed
break-after: pagebeing ignored when set on a preceding sibling element. - Fixed
break-inside: avoidboxes not being repositioned tomargin-topof the new page. - Fixed forced page-break detection to correctly handle
always,left, andrightvalues (previouslyleft/rightwere ignored). - Fixed forced page-break sibling lookup to skip floated elements.
Multi-Page Table Borders
- Fixed table bottom border rendering as an artifact line at intermediate page breaks. Table borders are now clipped to the page-break bottom using
PushCliprather than modifying the draw rectangle. - Fixed
PageBreakBottomsaccumulating stale data across re-layouts. - Fixed repeating table footers being excluded from
PageBreakBottomsclipping. - Fixed a crash caused by constructing a degenerate (zero or negative height) rounded rectangle during table border clipping.
- Fixed table row height estimation to include padding and borders, preventing premature page breaks.
Dependency Updates
Package | Change -- | -- SixLabors.ImageSharp | Removed — replaced by StbImageSharp SixLabors.Fonts | Removed — replaced by internal TtfFontDescription StbImageSharp | Added MimeKit | Updated to 4.17.0Documentation
- README and inline docs updated to use
NetworkLoader/MimeKitNetworkLoader/HttpClientNetworkLoaderin place of the olderNetworkAdapterAPI. - Image support documentation updated to reference
StbImageSharp. - Font documentation improved with
AddFontFromStreamusage notes and supported format list (TTF, OTF, WOFF, WOFF2).