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 消費端請用相符的公開字形記錄與產生的標頭檔重新建置