Skip to content

pdfHTML 6.3.3

Latest

Choose a tag to compare

@AnhelinaM AnhelinaM released this 08 Jul 08:43
6.3.3

Release pdfHTML 6.3.3

pdfHTML is an iText Core add-on for creating PDF from HTML/XML (and associated CSS).

This release adds support for the CSS :is(), :where(), and :not() pseudo-class selectors, improves tolerance of malformed CSS input, and fixes bugs affecting CSS Grid pagination and list rendering performance.

We've added support for the :is(), :where(), and :not() CSS pseudo-class selectors, contributed via a community pull request. These selectors are now resolved correctly in both iText Core's styled-xml-parser and pdfHTML, including handling of specificity differences between :is() and :where(), nested selectors, and combinators.

We've also improved how pdfHTML handles invalid CSS unit values. Previously, encountering a malformed unit (e.g. %%) could cause a hard failure during conversion. Now pdfHTML handles these cases more tolerantly, logging a warning and continuing processing rather than throwing an exception. This was reported by a customer encountering real-world HTML with non-standard unit patterns.

Two related bugs affecting CSS Grid layouts were resolved. The first caused list items and their symbols to be rendered twice when nested inside grid containers with display:grid and inline-table/list structures, which also led to unexpectedly large output PDFs and very slow conversion times. The second fixed an issue where grid cells split across page breaks would incorrectly use the original cell renderer instead of the split renderer, resulting in duplicated or misplaced content on the subsequent page.

New Feature

  • DEVSIX-9749 - Add :is() and :where() selector support

Improvements

  • DEVSIX-8800 - Implement a more tolerant error handling for wrong units in pdfHTML

Bug Fixes

  • DEVSIX-10029 - pdfHTML conversion is very slow with display:grid and nested inline-table/list structures
  • DEVSIX-10033 - Grid uses the original cell renderer instead of the split renderer after partial layout