ApplyBengaliReorder

Signature

function ApplyBengaliReorder(const Wide: UnicodeString): UnicodeString;

Purpose

Applies the Bengali reorder pre-pass to Wide and returns a UnicodeString prepared for cmap and GSUB consumption. Text outside Bengali remains byte-stable, so callers can route mixed text without changing unrelated runs

Coverage

  • Bengali uses the beng script record for U+0980-U+09FF. The documented path covers R1, R2, R4, R5, and split-matra decomposition while preserving API behaviour for producer-side shaping
  • ApplyIndicReorder dispatches to this helper when the active codepoint range matches U+0980-U+09FF

Example

var
  Wide: UnicodeString;
begin
  // Input: KA + Oo-matra (single codepoint U+09CB)
  Wide:= Doc.ApplyBengaliReorder(#$0995#$09CB);
  // Wide is now: U+09C7 + KA + U+09BE  (Oo decomposed to pre+post)
end;

See also

Standards

  • Unicode 16.0 U+0980-U+09FF
  • ISO 32000-1 ยง9.10
  • OpenType Bengali shaping specification

Version history

  • v2.119.71 - Introduced as part of the HotPDF Indic shaping batch