TrueType フォントの操作
TrueType フォントの操作
このガイドでは、TrueType フォントの読み込み方法、バイナリテーブルデータの検査、テーブルの生バイトの読み取り、そして TtfInstancer を使用して可変フォントから静的インスタンスを作成する方法を示します。
TrueType(TTF)フォントは、デスクトップおよびウェブフォント形式として最も一般的です。Aspose.Font の Python 用 FOSS は、TTF 固有のテーブルデータへのアクセス、グリフブロブの取得、可変フォント軸の制御のために TtfFont を提供します。
TTF フォントの読み込み
FontLoader.open() は TTF フォーマットを自動検出し、TtfFont 型のオブジェクトを返します。返されたインスタンスは、ttf_tables、get_table_bytes()、および可変フォント軸データなど、TTF 固有の機能へのアクセスを提供します。
from aspose_font import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name, font.num_glyphs, "glyphs")TTF テーブルへのアクセス
TtfFont.ttf_tables は、一般的なテーブル用の名前付きプロパティを持つ TtfTableSet を提供します。
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("kern table present:", tables.kern is not None)生テーブルバイト
TtfFont.get_table_bytes(tag) を使用して生のバイナリテーブルデータを取得し、TtfFont.set_table_bytes(tag, data) を使用して変更されたテーブルバイトを書き込みます。
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_cmap = ttf_font.get_table_bytes("cmap")可変フォントインスタンス
TtfFont.get_axis(tag) は、4文字タグ(例: "wght", "wdth")で単一の可変軸を返します。フォントがその軸を定義していない場合は None を返します。TtfInstancer.instantiate() は、指定された軸座標で可変フォントから静的インスタンスを生成します。
from aspose_font import FontLoader
from aspose_font import TtfFont
from aspose_font.ttf.instancer import TtfInstancer # internal API — may change between releases
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
weight_axis = ttf_font.get_axis("wght")
if weight_axis is not None:
print(f"wght range: {weight_axis.min_value}-{weight_axis.max_value}")
# Get a static instance at wght=700, wdth=75
instance = TtfInstancer.instantiate(ttf_font, {"wght": 700.0, "wdth": 75.0})ヒントとベストプラクティス
- 常に
isinstance(font, TtfFont)を使用してから、ttf_tablesまたはget_table_bytes()にアクセスしてください。 TtfTableSet.kernを使用して、カーニングペアを読む前にカーニングの利用可能性を確認してください。- 可変フォントのインスタンシングは新しいフォントオブジェクトを生成します。元のフォントは変更されません。
API Reference 概要
| クラス / メソッド | 説明 |
|---|---|
TtfFont.ttf_tables | TTF テーブルセットへのアクセス |
TtfFont.get_table_bytes(tag) | 名前付きテーブルの生バイト |
TtfFont.set_table_bytes(tag, data) | 変更されたテーブルバイトを書き込む |
TtfFont.get_axis(tag) | タグによる可変フォント軸、または None |
TtfInstancer.instantiate(font, coords) | 静的インスタンスを作成 |
TtfTableSet.kern | カーニングテーブル(存在しない場合はなし) |