HPDFShapeHeadlessText

function HPDFShapeHeadlessText(const Text: UnicodeString;
  const FontBytes: SysUtils.TBytes; MaximumGlyphs: Integer;
  CancellationToken: THPDFCancellationToken;
  MaximumLineAdvance: Double = 0; CharacterAdvance: Double = 0;
  WordAdvance: Double = 0): THPDFHeadlessShapedGlyphs;

经 HarfBuzz 使用调用方提供的 OpenType 字体,经 FriBidi 解析 Unicode 视觉 run,保留簇与 1000 单位字体坐标中的定位

CR/LF 段落独立 Shaping;正的 MaximumLineAdvance 要求在最终 Shaping 遍之前做逻辑簇折行

自动物理行继承原始完整段落的方向嵌入、override、isolate 与成对括号;每行有自己的空白重置、视觉重排与 HarfBuzz 连写上下文

段落顺序只解析一次并在物理行间无变更复用;真实的 CR/LF 分隔符开启新段落并重置控制状态

自动折行改变文本时,SourceOffset 相对规范化折行后的逻辑序列,包括插入的 U+000A 换行与既有的可断行空格移除;字形 UnicodeText、字段值与 PDF ActualText 保持既定逻辑契约

CharacterAdvance 与 WordAdvance 是同一 1000 单位字体坐标中的可选有限步进;character advance 在每个 Shaping 簇之后施加一次(包括最后一个簇),仅含 Unicode 方向控制的簇除外;word advance 作用于 U+0020 簇;两者都参与逻辑折行并计入返回的字形步进

输入与生成字形(包括插入的换行记录)都受同一个 MaximumGlyphs 总量约束;畸形代理对与缺失必需字形会失败;取消检查发生在段落之间、run 之间、缓存的行解析与折行检查点

Linux 用 libharfbuzz.so.0 与 libfribidi.so.0;Windows 要求架构匹配的库,可经 HOTPDF_HARFBUZZ_LIBRARY 与 HOTPDF_FRIBIDI_LIBRARY 显式提供路径

PDF 字体权限、CID 对象、ToUnicode、外观链接与增量输出请用 HPDFBuildHeadlessTextAppearance 或文档外观方法

Windows 原生复杂文本描述匹配的进程架构与运行时依赖搜索路径

用 HPDFShapeHeadlessTextSpan 在周围段落上下文中 Shaping 选定样式项,用 HPDFResolveHeadlessTextOrder 检查真实 Unicode 视觉位置