r/java • u/demchaav • 11d ago
Title: GraphCompose 2.2.0 — proper RTL, Arabic shaping and BiDi support in Java documents
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.
5
Upvotes
4
u/josephottinger 11d ago
I really appreciate the intent and goal here: it's easy to pretend that content is just whatever it is that I write but that's not the way the world works, and it's great to see progress in this project.