HPDFShapeHeadlessTextOrderedSpan Function
段落由来の埋め込みレベル・スクリプト・視覚位置を使って、選択されたスタイルスパンを完全な物理行に対してシェーピングします
function HPDFShapeHeadlessTextOrderedSpan(const Context: UnicodeString;
FirstUnit, UnitCount: Integer; const Order: THPDFHeadlessTextOrder;
const FontBytes: SysUtils.TBytes; MaximumGlyphs: Integer;
CancellationToken: THPDFCancellationToken;
CharacterAdvance: Double = 0; WordAdvance: Double = 0): THPDFHeadlessShapedGlyphs;
Order は完全な物理行の Context のすべての UTF-16 ユニットをカバーしなければなりません。HPDFResolveHeadlessTextLineOrder または HPDFReorderHeadlessTextLine から取得してください
FirstUnit と UnitCount は物理行内の完全なスカラーを選択します。実際の HarfBuzz バッファは周囲の行テキストを受け取り、方向とスクリプトは解決済み段落順序から来ます
返されるグリフのソースオフセットは選択されたスタイルスパン基準です。グリフ ID、送り幅、オフセットは実際の埋め込みフォントと 1 em あたり 1000 ユニットのスケールを使います
関数は、配列の一致、一意なスカラー視覚ランク、埋め込みレベル、サロゲート整合性、有限の間隔、グリフ上限、キャンセルを検証します。不正な順序は、単独の方向検出へ黙ってフォールバックしません
文字間隔はシェーピング済みクラスタごとに 1 回適用されます。ただし Unicode 方向制御文字だけのクラスタは除きます。単語間隔は空白クラスタに適用されます。呼び出し元は、元の論理値とスタイルテキストを視覚グリフ順序とは別に保持します