PythonでTTFフォントを扱う方法
このガイドでは、TTF フォントの読み込み、TtfFont のプロパティの検査、テーブルの読み取り、可変フォントのインスタンス化、そして Aspose.Font FOSS for Python を使用した他のフォーマットへの変換方法を示します。TrueType フォント(.ttf)は最も一般的なフォント形式です。Aspose.Font FOSS はそれらを TtfFont インスタンスとしてロードし、テーブル、可変フォント軸、グリフデータ、変換ユーティリティへのアクセスを提供します。
ステップバイステップガイド
ステップ 1: パッケージをインストールする
以下のコマンドを使用して Aspose.Font FOSS パッケージをインストールします:
git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .ステップ 2: 必要なクラスをインポートする
TTF フォントを読み込み、型付けされたプロパティにアクセスするために FontLoader と TtfFont をインポートします:
from aspose_font import FontLoader
from aspose_font import TtfFontステップ 3: TTF フォントの読み込みと検査
FontLoader.open() を使用して TTF ファイルをロードし、名前、ファミリー、グリフ数などの基本プロパティを読み取ります:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)ステップ 4: kern テーブルを読み取る
ttf_tables プロパティにアクセスし、名前で kern テーブルが存在するか確認します:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)ステップ 5: 可変フォントをインスタンス化する
可変フォントファイルをロードし、is_variable を確認し、軸辞書を使って instantiate() を呼び出し、スタティックインスタンスを生成します:
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
if ttf_font.is_variable:
static = ttf_font.instantiate({"wght": 700.0})
print("Instantiated:", static.font_name)ステップ 6: WOFF2 に変換する
ロードされたTTFフォントをFontType.WOFF2をFontConverter.convert()に渡すことでWOFF2形式に変換します:
from aspose_font import FontLoader
from aspose_font.converter import FontConverter # internal API — may change between releases
from aspose_font import FontType
font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)一般的な問題と対処法
AttributeError: Font has no attribute ttf_tables — 使用 ttf_font: TtfFont = FontLoader.open(...). この ttf_tables プロパティは TtfFont, ベースではなく Font.
is_variable は可変フォントで False です — 一部の可変フォントは非標準の fvar テーブル形式です。確認してください ttf_font.fvar is not None 代替として。
instantiate() raises KeyError — 軸タグは登録された4文字タグである必要があります(例: "wght", "wdth")。確認してください ttf_font.axes 利用可能なタグ。
よくある質問
TTF と OTF の違いは何ですか?
OTF と TTF は同じバイナリコンテナ (SFNT) を共有しています。OTF フォントは通常 CFF アウトラインを使用し、TTF フォントは TrueType 二次曲線を使用します。両方とも FontLoader.open() によってロードされます。
TTF フォントからカーネルペアを取得できますか?
はい。TtfFont.get_kern_pairs() を使用して KernPair オブジェクトのリストを取得します。
このライブラリはフォントコレクション (.ttc) をサポートしていますか?
はい。FontLoader.open(source, collection_index=N) を使用して TTC コレクションファイルから特定のフォントを選択します。