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/StyleSheetIncludeas trusted, caller-supplied configuration — not something derived from RTF input.
Fixed
- Language no longer “sticks” between conversions — a document’s auto-detected
\deflangused to leak into the nextConvert()/ConvertRTF()call on the same component, silently overriding a later document’s own language (or wrongly tagging one with no\deflangat 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,monospacelike 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.
\'b7in a Symbol-font run now correctly produces the bullet (•) under both Delphi and Free Pascal. - Hyperlinks bleeding onto unrelated text — a
HYPERLINKfield’s<a>wrapper could incorrectly extend onto plain text that followed it in the source document. Fixed. \plainresetting 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\rdblquoteused 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