HPDFResolveHeadlessTextLineOrder 函式

為一個完整邏輯段落解析嵌入層級,並重排選定的物理行,同時保留從較早行開始的方向嵌入、override、isolate 與成對括號 context

function HPDFResolveHeadlessTextLineOrder(const Paragraph: UnicodeString;
  FirstUnit, UnitCount, MaximumUnits: Integer;
  CancellationToken: THPDFCancellationToken;
  ParagraphDirection: THPDFHeadlessTextDirection = htdAuto): THPDFHeadlessTextOrder;

FirstUnit 是零基 UTF-16 偏移,UnitCount 是物理行長度(不含行或段落分隔符);兩個邊界都必須包含完整的 Unicode scalar

回傳陣列只描述該物理行,BaseRightToLeft 描述完整段落;增補 scalar 的兩個 UTF-16 unit 共用相同的視覺排名、層級與 script

函式先做段落嵌入解析,接著透過設定的原生 FriBidi 程式庫做物理行空白重設與視覺重排;它保留邏輯文字,本身不做 glyph shaping 或鏡射

MaximumUnits 必須為正且至多 131070;完整段落必須在此預算內、含有效 Unicode 且沒有行分隔符

同一段落要處理多行時,先解析一次 HPDFResolveHeadlessTextOrder,再用 HPDFReorderHeadlessTextLine,避免反覆處理段落

把每個物理行及其回傳順序交給 HPDFShapeHeadlessTextOrderedSpan 做原生 context OpenType shaping