Remove support for deprecated output document types (HTML 3.2/Flex, HTML 4.01 Transitional/Strict, XHTML 1.0 Transitional, XHTML Basic 1.0, XHTML Mobile Profile 1.0, XHTML 1.1); TDocumentType is now dtHTML_50 and dtXHTML_10_Strict only, and the SCROOGE_DEPRECATED_DOCUMENT_TYPES conditional define is gone
Remove attribute-based hyperlink auto-detection (underlined blue text was treated as a link even when it was not); only actual RTF HYPERLINK fields are now converted
Fix XSS: HTML-escape the anchor id and hyperlink href attribute values in generated output
Fix ordered list numbering style fidelity: roman/letter/etc. numbering from \listtable now renders as an <ol type="..."> attribute (HTML5) or CSS list-style-type (XHTML), instead of always falling back to a bare <ol>
Add a genuine DOM node type for embedded pictures (TPictureNode / ISimpleDomPictureNode), replacing the previous pre-rendered-HTML-in-a-text-node approach
Improve conversion performance for large documents (replace O(n^2) string concatenation with TStringBuilder in the reader/writer/translator hot paths)
Fix headless DUnit test runs (-text-mode) that could hang on a memory-leak dialog with no one present to dismiss it
Add headless test runner scripts for both compilers (run-delphi.cmd, run-fpc.cmd/.sh)
Fix warnings reported by Doxygen
Add more unit tests
Fix RGBToHex (color table conversion) not clamping out-of-range or negative \red/\green/\blue values, which could produce a malformed (not 6-digit) hex color from a malformed RTF color table entry
Fix a potential infinite loop in the RTF parser: a truncated or malformed document whose \clw / \clfts / \trw / \trfts keyword was not followed by another control word could hang TSxReader.SkipWord (matters when converting untrusted RTF, e.g. via the web demo)
Limit RTF group nesting depth (MAX_RTF_GROUP_DEPTH): a document that is just a long run of "" characters could otherwise grow the parser's property stack until memory was exhausted; nesting past the limit now raises ESxRtfGroupNestingError (matters when converting untrusted RTF, e.g. via the web demo)
Version 9.6 (released 2026-06-06)
Update slf4p to 1.0.8
Update Doxygen to 1.17.0
Fix support for the SCROOGE_USE_SLF4P option
Fix warnings reported by Pascal Expert
Version 9.5 (released 2026-04-25)
Fix warnings reported by Pascal Expert
Update Doxygen to 1.16.1
The license text has been modified with version 9.5, to match more closely the license for the ScroogeXHTML RTF Converter for the Java platform. It now also contains licensing information for usage of the ScroogeXHTML for Object Pascal library in client/server systems.
Version 9.4 (released 2025-07-24)
Add support for Unicode-based representation of Symbol font characters