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 消费方请用匹配的公开字形记录和生成的头文件重新构建