Skip to content

2.2.0

Latest

Choose a tag to compare

@odrobnik odrobnik released this 15 Sep 15:05
03b9ff0

Tables that paginate properly in both PDF engines, CSS fragmentation and @media print in the Swift engine, iOS WebKit support, and main-content extraction for HTML → Markdown.

Breaking: minimum deployment targets rise to macOS 13 / iOS 15 / tvOS 15 / watchOS 10 (#53).

Tables

  • Rows continue across page boundaries and headers repeat on each page, in both engines (#66, #67, #76, #99).
  • Columns are sized by content instead of evenly, honouring min-width, break-word and min-content limits (#82, #96, #103, #104).
  • Unbreakable content stays within the page, and columns no longer collapse under overflow wrap (#69, #72).
  • Collapsed borders and WebKit's right-hand borders are preserved (#90, #92).

SwiftTextRender — Swift PDF engine

  • CSS fragmentation (break-before / break-after / break-inside, plus the legacy page-break-* aliases) is honoured — render --page-break-before was a silent no-op on --engine swift (#57).
  • @media print rules are applied in the Swift cascade, so the screen stylesheet's padding no longer leaks into PDFs (#101).
  • Embedded TrueType fonts are subset, and base-14 WinAnsi advance widths are correct (#84, #85).
  • Local images resolve, task-list checkboxes render, soft line breaks win over overflow wrapping, and underlines no longer gap between words (#83, #86, #91, #95).

iOS

  • WebKit's JavaScript-loading path now works on iOS — the post-JS DOM, not the raw server HTML (#52).
  • Paginated PDF export via UIPrintPageRenderer, reaching the same WebKit print pipeline as macOS (#55).
  • WebKitBrowser fails instead of hanging: real failure callbacks, a Swift-side timeout, and a fixed retain cycle that leaked a web content process per load (#58).

Also

  • Main-content extraction for HTML → Markdown — nav, cookie banners, sidebars and footers stay out (#56).
  • Document metadata is written into PDF, DOCX and HTML output (#65).
  • libarchive replaces ZIPFoundation (#53): back on a tagged dependency, reproducible archives, ~9% smaller output.
  • Inferred document titles keep literal punctuation instead of being smart-quoted (#105).

Full Changelog: 2.1.0...2.2.0