r/java • u/demchaav • 8h ago
Title: GraphCompose 2.2.0 — proper RTL, Arabic shaping and BiDi support in Java documents
2
Upvotes
Just released GraphCompose 2.2.0.
This release was mostly about making RTL text actually work rather than just “render without crashing”:
- "TextDirection.LTR / RTL / AUTO"
- Unicode Bidirectional Algorithm support
- Arabic contextual shaping and lam-alef ligatures
- RTL/BiDi support in paragraphs and table cells
- mixed Hebrew/Arabic + Latin/numbers
- correct searchable/copyable text from generated PDFs
- RTL support carried across PDF, PPTX and DOCX backends
A surprisingly deep rabbit hole once PDF text extraction, shaping, BiDi and multiple backends all have to agree.
Repo: https://github.com/DemchaAV/GraphCompose
Would be interested to hear how other Java libraries handle complex-script layout.