HPDFResolveHeadlessTextOrder

function HPDFResolveHeadlessTextOrder(const Text: UnicodeString;
  MaximumUnits: Integer; CancellationToken: THPDFCancellationToken;
  ParagraphDirection: THPDFHeadlessTextDirection = htdAuto): THPDFHeadlessTextOrder;

通过原生 FriBidi 与 HarfBuzz 库,解析一个真实 Unicode 段落的逻辑到视觉 scalar 映射、嵌入层级和 script 项

MaximumUnits 是不超过 131070 的正数 UTF-16 预算;畸形代理对以及 CR、LF、NEL、LS、PS 段落分隔符会导致失败,空段落返回空数组

每个数组都有 Length(Text) 个条目;增补 scalar 的两个 UTF-16 单元共享其视觉 scalar 位置、嵌入层级和 script 标签

VisualPositions 存零起算的视觉 scalar 位置,Levels 存 FriBidi 嵌入层级,Scripts 存以 Cardinal 值表示的 HarfBuzz script 标签

BaseRightToLeft 记录解析出的段落方向;common 与 inherited script 值会借助相邻段落的 script 上下文用于样式项拆分

Unicode 解码、script 分类和项映射期间都会检查取消;换行后要保持原始方向时,请以显式 ParagraphDirection 调用该函数

参见 THPDFHeadlessTextOrder、THPDFHeadlessTextDirection 与 HPDFShapeHeadlessTextSpan