PDFium Delphi Component Docs

FPdfTextShaping ユニット

ユニット: FPdfTextShaping
双方向 Unicode テキストを TPdf.AddShapedText 向けの視覚グリフランへシェイプします。入力サイズと出力サイズは上限付きで、拡張可能なシェーパーベースクラスを備えています

ワークフロー

API目的
ShapePdfText(Text, FontName, FontSize, Direction, out Shaped)内蔵の Windows Uniscribe 実装とデフォルトのリソース制限でテキストをシェイプします
TPdfTextShaper.Shapeグリフ識別子、クラスター、視覚ラン、アドバンス、選択されたフォントデータを返すカスタムエンジン向けの抽象シェイピング契約です
TPdfUniscribeTextShaper.Shapeusp10.dll を使ってテキストランをアイテマイズ、シェイプ、配置、視覚的に並べ替えます
TPdfTextShapingOptions.Default自動方向と、1,000,000 文字、2,000,000 グリフ、100,000 ランの制限を返します
ConfigureTextShaper(Shaper)このユニットが使うシェーピング バックエンドをインストールし、以降は組み込みのものを置き換えます。インスタンスの所有権はユニットが持ちます
ClearTextShaperインストール済みのバックエンドを取り外し、プラットフォーム既定に戻します
ActiveTextShaper現在使用中のバックエンドです。このプラットフォームで利用できるシェーパーがなければ nil になります
ActiveTextShaperNameアクティブなバックエンドが報告する名前です。ログ出力や、デプロイ間の区別に役立ちます

公開型

説明
EPdfTextShapingError無効な入力、リソース制限違反、フォントデータの失敗、シェイピングエンジンのエラーに対して発生する例外です
TPdfTextDirectionptdAuto, ptdLeftToRight, ptdRightToLeft
TPdfShapedGlyphGlyphIDAdvanceOffsetXOffsetYClusterStartClusterLength を持つ 1 個のグリフです
TPdfShapedGlyphsTPdfShapedGlyph レコードの動的配列です
TPdfShapedRunTextStartTextLengthVisualXWidthBidiLevelIsRightToLeftGlyphs を持つ 1 個の視覚ランです
TPdfShapedRuns視覚順に並んだ TPdfShapedRun レコードの動的配列です
TPdfShapedTextソース Text、選択された FontNameFontSize、埋め込み FontData、シェイプ済み Runs、合計 WidthGlyphCountLogicalCharacterCount です
TPdfTextShapingOptionsDirectionMaxCharactersMaxGlyphsMaxRuns のリソース制限です
TPdfTextShaper呼び出し側が提供するシェイピング実装のための抽象基底クラスです
TPdfUniscribeTextShaperTPdfTextShaper の内蔵 Windows 実装です

備考

var
  Shaped: TPdfShapedText;
  MeasuredWidth: Single;
begin
  if ShapePdfText(Text, 'Segoe UI', 12, ptdAuto, Shaped) then
    MeasuredWidth := Shaped.Width;
end;

関連項目

TPdf.AddShapedText