HandyReader Blog

HandyReader 1.23.260903 is NOW AVAILABLE!

Hey everyone! HandyReader v1.23.260903 is here!

This is the release I promised last time — full RTL (right-to-left) support has finally landed. On top of that, this version improves list-style paragraph typesetting, fixes table rendering issues, polishes rich inline styles within paragraphs, and resolves TTS compatibility problems along with the crashes they caused.

What’s New

RTL (Right-to-Left) Support

Handy Reader now properly supports RTL languages such as Arabic and Persian, as well as mixed RTL/LTR paragraph layouts. As I mentioned in the previous release notes, Android’s StaticLayout measurement API has known issues with mixed RTL and LTR text inside a single paragraph. Using the SheenBidi library, a paragraph is split into RTL and LTR segments, each segment is typeset separately, and the results are then reassembled into the whole paragraph — cleanly bypassing the system’s limitations.

If you read Arabic, Persian, Hebrew, or any other right-to-left language, your books should now display correctly, with natural page-turn direction and proper bidi handling for numbers, Latin words, and punctuation embedded in RTL text.

Improvements

List-Style Paragraph Typesetting

Formatting for list-style paragraphs (ordered and unordered lists) has been improved, with better indentation and marker alignment.

Rich Inline Styles

Rendering of rich inline styles within paragraphs — such as bold, italic, links, and combined styles — has been enhanced and optimized for more accurate and smoother rendering.

Bug Fixes

  • Fixed table rendering issues: tables that previously displayed incorrectly or broke the layout now render properly.
  • Resolved TTS compatibility issues and fixed the related crashes. Text-to-speech should now work reliably across more devices and book formats.

Download

GitHub: https://github.com/EucWang/HandyReader/releases/tag/v1.23.260903

Download page: https://handyreader.top/en/download.html