HPDFShapeHeadlessTextSpan

function HPDFShapeHeadlessTextSpan(const Context: UnicodeString;
  FirstUnit, UnitCount: Integer; const FontBytes: SysUtils.TBytes;
  MaximumGlyphs: Integer; CancellationToken: THPDFCancellationToken;
  CharacterAdvance: Double = 0; WordAdvance: Double = 0;
  ParagraphDirection: THPDFHeadlessTextDirection = htdAuto): THPDFHeadlessShapedGlyphs;

以呼叫端實際的 OpenType 字型 shaping 選定的 UTF-16 區段,同時保留完整周圍段落作為 HarfBuzz 的前後文 context

FirstUnit 是零基的 UTF-16 偏移,UnitCount 是 UTF-16 長度;兩個邊界都不可切開 surrogate pair,長度為零的區段不回傳任何 glyph

FriBidi 依完整段落解析嵌入層級;HarfBuzz 收到解析後的 script,並在每個視覺 run 內 shaping 所選項目,保留阿拉伯文連結形與鏡射標點

回傳的 SourceOffset 相對於選定區段,UnicodeText 保留每個實際選到的 cluster,glyph 前進量與偏移使用 1000 單位的字型座標

CharacterAdvance 對每個 shaped cluster 套用一次,僅含 Unicode 方向控制字元的 cluster 除外;WordAdvance 套用在 U+0020 cluster 上,兩者必須是有限值並使用與 Advance 相同的座標

shaping 物理換行後的行且其第一個強字元與原始段落不同時,ParagraphDirection 可保留既有的左至右或右至左段落方向

既有的輸入與 glyph 預算、字型涵蓋檢查、取消 token 與原生 runtime 依賴需求同樣適用於本函式

部分區段保留連結 context,但不會以另一個字型的基礎 glyph 獨立定位不同樣式的結合符號;當單一字型涵蓋整個 cluster 時請使用完整 cluster shaping

參閱 HPDFShapeHeadlessText、HPDFResolveHeadlessTextOrder 與 contextual rich text 外觀