HPDFShapeHeadlessText
function HPDFShapeHeadlessText(const Text: UnicodeString;
const FontBytes: SysUtils.TBytes; MaximumGlyphs: Integer;
CancellationToken: THPDFCancellationToken;
MaximumLineAdvance: Double = 0; CharacterAdvance: Double = 0;
WordAdvance: Double = 0): THPDFHeadlessShapedGlyphs;
呼び出し側が供給した OpenType フォントを HarfBuzz で使い、Unicode の視覚 run を FriBidi で解決します。クラスタと位置は 1000 単位のフォント座標で保持されます
CR/LF 段落は独立にシェーピングされます。正の MaximumLineAdvance は、最終シェーピングパスの前に論理クラスタ折り返しを要求します
自動的な物理行は、元の完全段落の方向エンベディング、オーバーライド、アイソレート、対括弧を継承します。各行は独自の空白リセット、視覚並べ替え、HarfBuzz 接続コンテキストを持ちます
段落の順序は 1 回だけ解決され、変更されずに物理行間で再利用されます。実際の CR/LF 区切りは新しい段落を開始し、制御状態をリセットします
自動折り返しがテキストを変えるとき、SourceOffset は正規化された折り返し後論理シーケンス相対のままです。挿入された U+000A 改行と、既存の break space 除去を含みます。グリフの UnicodeText、フィールド値、PDF ActualText は、確立済みの論理契約を保ちます
CharacterAdvance と WordAdvance は、同じ 1000 単位フォント座標における省略可能な有限アドバンスです。文字アドバンスはシェーピングされたクラスタごとに 1 回適用されます(Unicode 方向制御のみを含むクラスタを除く)。語アドバンスは U+0020 クラスタに適用されます。両方とも論理折り返しと返されるグリフアドバンスに算入されます
挿入された改行レコードを含め、入力と生成のグリフは同じ合計 MaximumGlyphs で有界化されます。不正なサロゲートと必要なグリフの欠落は失敗し、キャンセルは段落間、run 間、キャッシュ済み行解決、折り返しチェックポイントで確認されます
Linux は libharfbuzz.so.0 と libfribidi.so.0 を使います。Windows はアーキテクチャ一致のライブラリーが必要で、HOTPDF_HARFBUZZ_LIBRARY と HOTPDF_FRIBIDI_LIBRARY で明示的なパスを指定できます
PDF フォント権限、CID オブジェクト、ToUnicode、外観リンク、インクリメンタル出力には、HPDFBuildHeadlessTextAppearance かドキュメントの外観メソッドを使ってください
Windows ネイティブ複雑テキストが、一致するプロセスアーキテクチャとランタイム依存関係の検索パスを説明しています
選択されたスタイル項目を周囲の段落コンテキスト付きでシェーピングするには HPDFShapeHeadlessTextSpan を、実際の Unicode 視覚位置を調べるには HPDFResolveHeadlessTextOrder を使ってください