HPDFShapeHeadlessTextStyledSpan

function HPDFShapeHeadlessTextStyledSpan(const Context: UnicodeString;
  FirstUnit, UnitCount: Integer; const Order: THPDFHeadlessTextOrder;
  const FontBytes: SysUtils.TBytes; MaximumGlyphs: Integer;
  CancellationToken: THPDFCancellationToken;
  CharacterAdvance, WordAdvance: Double;
  CSSLetterSpacing, CSSWordSpacing: Boolean): THPDFHeadlessShapedGlyphs;

宣告於 HPDFHeadlessShaping。此函式利用完整的前後文與先前解析好的視覺順序整形一段 UTF-16 span,使用指定的 HarfBuzz 與 FriBidi 執行期以及字型位元組

FirstUnit 是從零開始的 UTF-16 偏移,UnitCount 選出請求的 span;呼叫端必須提供相容的順序資料以及正的 MaximumGlyphs 預算

CharacterAdvance 與 WordAdvance 使用正規化的 1000 字型單位步進,而不是 PDF point;呼叫前請先用 points * 1000 / fontSize 換算 point 間距

raw 步進必須是有限值且絕對值不超過 1000000000000000,以便在最小支援正字型大小下容納原生 point 預算;外觀建構器另行執行其撰寫值與計算值的 point 限制

CSSLetterSpacing 啟用排版單位的字距與可選連字處理;CSSWordSpacing 依設有上限的間距 profile 在 SPACE 與 NBSP 群集(含分隔標記)兩側啟用半間距

回傳的字形步進與偏移已包含請求的間距;SpacingAdvance 記錄其貢獻,TypographicUnit、CursiveUnit 與 WordSeparator 為 rich 實體行組裝器提供邊界詮釋資料

取消會在分類與整形期間檢查,字形預算或畸形輸入失敗走既有的整形例外契約;本函式既不發佈 PDF,也不擁有呼叫端的字型位元組或 token

既有的整形入口保持原語義;Pascal 與 C++Builder 消費端請用相符的公開字形記錄與產生的標頭檔重新建置