Bidirectional text and complex script shaping
Advanced report design
Bidirectional text and complex script shaping
Report Manager renders Unicode text with proper complex-script shaping (ligatures, contextual forms and combining marks) and the Unicode bidirectional (BiDi) algorithm, so right-to-left scripts such as Hebrew and Arabic, and complex scripts such as the Indic languages, are laid out correctly in the preview, on the printer and in exported PDF.
How shaping is done on each platform
Shaping and bidi reordering are handled by the native text stack of each platform; the engine then places the resulting glyph runs:
| Platform / output | Text engine |
|---|---|
| Windows (preview and GDI printing) | DirectWrite – shaping, font fallback and the Unicode bidi algorithm. |
| Linux | ICU (Unicode bidi algorithm and normalization) with HarfBuzz (glyph shaping) and FreeType (font handling). |
| PDF output (all platforms) | Uses the same shaping engine and embeds the shaped glyphs with font fallback, so the PDF matches the on-screen layout. |
Complex shaping and bidirectional support are available since version 3.9.15.
The Bidi Mode property
Bidirectional behaviour is controlled per component by the Bidi Mode property, available on every text component (labels and expressions). Together with the component horizontal alignment it gives three modes:
| Bidi Mode | Reading order and shaping | Horizontal alignment |
|---|---|---|
| No Bidi | No bidi processing and no complex shaping; text is laid out left-to-right exactly as stored. Best for plain Latin text (fastest). | As set |
| Partial Bidi | Complex shaping and the Unicode bidi algorithm are enabled, so right-to-left runs are reordered and shaped correctly. | Kept as you set it |
| Full Bidi | Same shaping and reordering as Partial Bidi. | Mirrored – a left-aligned field becomes right-aligned, matching a right-to-left document. |
Set Bidi Mode to Partial Bidi or Full Bidi on any component that must display Hebrew, Arabic or another complex script; choose Full Bidi when the whole field should follow right-to-left alignment.
Notes
- The component must use a font that contains the required glyphs; when a glyph is missing, font fallback selects another installed font automatically.
- Mixed text (for example Latin digits inside an Arabic sentence) is ordered by the Unicode bidi algorithm, producing the same result in the preview, on the printer and in PDF.
See also International support and the common text component properties for the Bidi Mode and alignment settings.