Python で CFF フォントを扱う方法

Python で CFF フォントを扱う方法

CFF(Compact Font Format)は、OpenTypeフォントおよびスタンドアロンの.cffファイル内で使用されるアウトライン形式です。Aspose.Font FOSSは、CFFフォントをCffFontインスタンスとして表現し、これらは基本のFontクラスを拡張し、CFF固有のデータを公開します。

ステップバイステップガイド

ステップ1:パッケージをインストール

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

ステップ2:必要なクラスをインポート

from aspose_font import FontLoader
from aspose_font import CffFont
from aspose_font import FontType

ステップ3:CFFフォントをロード

FontLoader.open() を、.cff ファイルへのパスで呼び出します。返されるオブジェクトは CffFont インスタンスで、グリフ数、フォント名、CFF 固有のプロパティを公開します:

font = FontLoader.open("MyFont.cff")
print(font.font_name)
print(font.num_glyphs)

ステップ 4: カーンペアにアクセスする

ロードしたフォントを CffFont にキャストし、次に get_kern_pairs() を呼び出してカーンペアレコードのリストを取得します。すべての CFF フォントがカーンデータを含むわけではありません; 反復する前に長さを確認してください:

from aspose_font import FontLoader
from aspose_font import CffFont

cff_font: CffFont = FontLoader.open("MyFont.cff")
kern_pairs = cff_font.get_kern_pairs()
print(f"kern pairs: {len(kern_pairs)}")

ステップ 5: CFF を TTF に変換する

ロードした CffFont を FontConverter.convert() に FontType.TTF と共に渡し、TTF アウトライン形式の新しい TtfFont を生成します:

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("MyFont.cff")
ttf = FontConverter.convert(font, FontType.TTF)

一般的な問題と対策

CffFont has no attribute cff_font — cff_font はプロパティです TtfFont は埋め込みCFFデータを返しますが、ベースクラスにはありません Font クラスです。スタンドアロンのCFFファイルを使用するには CffFont を直接使用してください。

空のカーンペア — すべてのCFFフォントがカーンペアデータを含むわけではありません。以下で確認してください len(cff_font.get_kern_pairs()) > 0 を反復処理する前に.

よくある質問

CffFont と TtfFont の違いは何ですか?

CffFont はスタンドアロンの CFF ファイルを表します。TtfFont は TTF/OTF ファイルを表します; OTF は ttf_font.cff_font を介してアクセスできる CFF アウトラインを埋め込むことがあります。

CFF フォントを WOFF2 に変換できますか?

はい。FontConverter.convert(font, FontType.WOFF2) は CffFont を含む任意の Font インスタンスで動作します。

参照

 日本語