New

  • TSxOptionsSecurity.StrictMode — an opt-in mode that turns previously-tolerated malformed RTF (unmatched group markers, unclosed groups, bad \pict/hex escapes, out-of-range color-table indices) into a catchable error instead of silently working around it. Lenient mode stays the default, so nothing changes unless you turn it on.
  • Documented TSxOptionsHead.HeadTags/MetaTags/StyleSheetInclude as trusted, caller-supplied configuration — not something derived from RTF input.

Fixed

  • Language no longer “sticks” between conversions — a document’s auto-detected \deflang used to leak into the next Convert()/ConvertRTF() call on the same component, silently overriding a later document’s own language (or wrongly tagging one with no \deflang at all). Each conversion now starts clean.
  • Broken font-family CSS — a replaced font with a generic fallback (e.g. Times → Times New Roman) used to render as an invalid, unmatchable font-family:'Times New Roman,serif';, causing browsers to silently fall back to a generic font. Now emitted correctly.
  • Monospace fonts now get a proper CSS fallback — a \fmodern-tagged font (the RTF family used for fixed-width fonts like Courier) with no explicit replacement rule used to get no generic-family fallback at all, unlike every other RTF font family. Now falls back to ,monospace like the others already did.
  • Symbol-font text decoding — fixed three compounding bugs that corrupted Symbol-font characters (e.g. bullets) into wrong glyphs or mojibake. \'b7 in a Symbol-font run now correctly produces the bullet (•) under both Delphi and Free Pascal.
  • Hyperlinks bleeding onto unrelated text — a HYPERLINK field’s <a> wrapper could incorrectly extend onto plain text that followed it in the source document. Fixed.
  • \plain resetting to the wrong font — it was falling back to a hardcoded “Times” instead of the document’s actual default font (\deff0). Now uses the correct default.
  • Curly quotes now render correctly — \lquote, \rquote, \ldblquote, and \rdblquote used to emit plain ASCII quote marks instead of proper curly quotes (‘ ‘ ” “). Fixed.
  • Half-point font sizes no longer get truncated — a size like \fs21 (10.5pt) used to be rounded down to 10pt. Fractional point sizes are now preserved exactly.
  • Adjacent independent lists no longer merge — two separate bulleted/numbered lists placed back-to-back, with no plain paragraph between them, used to silently combine into one continuous list. Each is now rendered as its own list.

Bottom line: 10.2 is a precision release — sharper font rendering, correct international/symbol text, and hyperlinks and quotation marks that finally look the way the source document intended.

Resources

Home page: https://www.scroogexhtml.com/object_pascal.html
Demo version: https://www.habarisoft.com/scroogexhtml/10.2/ScroogeXHTMLDemo.zip
“Getting started” user guide: https://www.habarisoft.com/scroogexhtml/10.2/docs/ScroogeXHTMLGettingStarted.pdf