1. 製品
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS 用 Python

オープンソース Python ライブラリで、TTF、OTF、CFF、WOFF、WOFF2、EOT フォントファイルの読み込み、検査、変換、サブセット化を行います。

Python でフォントをプログラム的に操作する

Aspose.Font FOSS for Python は、TrueType、OpenType、CFF、Type 1、WOFF、WOFF2、EOT 形式のフォントをロード、検査、変換、サブセット化、プレビューするための pure-Python ツールキットです。ライブラリは Python 3.10 以降で動作し、外部の OS フォントライブラリやネイティブ依存関係は必要ありません。

このライブラリは、FontLoader を介したフォントロード、GlyphAccessor を介したグリフアクセス、FontConverter を介したフォーマット変換、FontCleaner を介したウェブ最適化、FontSubsetter を介したテキスト対応サブセット化、そして AnimationPreviewBuilder を介した可変フォントアニメーションのためのクリーンな API を提供します。名前、ファミリー、スタイル、グリフ数、エンコーディング、メトリクスなどのフォントメタデータは、Font 基底クラスを通じて、バイナリテーブルを手動で解析することなくアクセスできます。

Aspose.Font FOSS は MIT ライセンスで、単一の pip install コマンドで PyPI からインストール可能です。フォントデザインツール、ウェブフォントパイプライン、グリフレンダリングエンジン、そしてフォントファイルの読み取り、変換、生成が必要な任意の Python アプリケーションに適しています。エンタープライズ製品ファミリーについては、Aspose.Font — Enterprise Product Family を参照してください。

フォントの読み込みと形式検出

  • ファイルパスまたは生バイトからフォントをロードするには、FontLoader.open()FontLoader.load() を使用します
  • 形式を自動検出: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • ベースクラス Font を介してフォントメタデータにアクセスします: font_name, font_family, font_style, num_glyphs
  • FontEncoding.unicode_to_gid()get_all_codepoints() を使用してグリフエンコーディングマップを読み取ります
  • フォントメトリクスを FontMetrics で検査します: アセント、ディセント、ラインギャップ、エムスクエア

典型的な使用例

  • フォント検証とメタデータ抽出パイプライン
  • フォントファミリ名とグリフ数を検証する CI/CD チェック
  • 複数の入力フォーマットに対応した Web フォント取り込みサービス
  • デスクトップランタイムを使用せずにメタデータを表示するフォントデザインツール

グリフへのアクセスとパスの検査

  • ID または Unicode でグリフを取得するには、GlyphAccessor.get_glyph_by_id()get_glyph_by_unicode() を使用します。
  • 文字列のすべてのグリフを GlyphAccessor.get_glyphs_for_text() で解決する
  • 入力されたコマンドとしてグリフのアウトラインパスを検査します: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Glyph プロパティからグリフのバウンディングボックス、アドバンス幅、サイドベアリングを取得する
  • 正確なテキストレイアウト計算のために、KernPair からカーニングペアを読み取ります

典型的な使用例

  • 多言語テキストのレンダリングにおけるグリフカバレッジチェック
  • SVG パスまたはベクトル生成のアウトライン抽出
  • フォント QA ワークフローにおけるカーニングテーブルの検証
  • テキストシェーピングの研究と低レベルレイアウトの実験

フォント変換

  • TTF、OTF、CFF、WOFF、WOFF2、EOT、そして Type 1 を FontConverter.convert() で変換します
  • Bezier 曲線タイプを CurveAdapter.quad_to_cubic()cubic_to_quads() で適応する
  • 二次ベジェと三次ベジェのグリフパスを convert_path_quad_to_cubic()convert_path_cubic_to_quad() で変換する

典型的な使用例

  • 配布用にTTFマスターフォントをWOFF2に変換するWebフォントパイプライン
  • 1つのソースから複数のフォーマットターゲットへエクスポートできるタイプファウンドリツール
  • レガシーEOT変換(後方互換性のあるWebフォントスタック用)
  • 継続的インテグレーションにおけるフォント形式の自動正規化

フォントのサブセット化

  • Unicode テキストでフォントをサブセット化する FontSubsetter.subset_by_text()
  • glyph ID リストによるサブセット化 FontSubsetter.subset_by_gids()
  • Web に最適化されたサブセットを FontSubsetter.subset_for_web() で生成する
  • 名前付きプリセットプロファイルを FontSubsetter.subset_by_presets()available_presets() で適用する
  • サブセットカバレッジを FontSubsetter.analyze_coverage()analyze_web_coverage() で分析する

典型的な使用例

  • 限定文字セットのウェブページ向けに WOFF2 ペイロードサイズを削減する
  • i18n デプロイメント向けの言語別フォントサブセットの作成
  • ページセットごとにサブセットを配布するフォントライセンスワークフロー
  • モバイルウェブアプリケーションのパフォーマンス最適化

Web最適化と可変フォントプレビュー

  • レガシーテーブルとMac名レコードをFontCleaner.clean_for_web()で取り除く
  • 変数フォント軸の互換性を CompatibilityChecker.compare_fonts()compare_variable_instances() で確認する
  • AnimationPreviewBuilder.build_axis_sweep() でアニメーションAPNG軸スイープを生成する
  • AnimationPreviewBuilder.build_path() を使用してマルチステップ アニメーション パスを構築する

典型的な使用例

  • タイプファウンドリー向けのフォント見本ページとインタラクティブ軸エクスプローラ
  • 配布前に可変フォントの挙動を検証する CI パイプライン
  • 不要なバイナリテーブルを削除する Web パフォーマンス パイプライン
  • フォント管理アプリケーション向けのフォントプレビューサムネイル

フォントファイルを読み込む

ファイルパスから TrueType または OpenType フォントを開き、基本的なメタデータを読み取ります。

from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # e.g. "Roboto"
print(font.font_family)  # e.g. "Roboto"
print(font.num_glyphs)   # e.g. 1294

テキスト文字列のグリフにアクセスする

Unicode コードポイントに対するすべてのグリフを解決し、そのアウトラインパスを検査します。

from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)  # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

可変フォント軸スイープアニメーションを生成する

開始値から終了値まで可変フォント軸をスイープするアニメーションAPNGを作成してください。

from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder

font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")

asset = AnimationPreviewBuilder.build_axis_sweep(
    font,
    axis_tag="wdth",
    start_val=75.0,
    end_val=100.0,
    frames=3,
    fps=10,
    text="A",
    size=10.0,
    bounce=True,
)

asset.write_to("roboto-sweep-wdth.png")

Web 配信用にフォントをクリーンアップする

Web 配信前にバイナリサイズを削減するため、レガシーテーブルと Mac の名前レコードを削除します。

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped

よくある質問

Aspose.Font FOSS for Pythonとは何ですか?

これは、TTF、OTF、CFF、Type 1、WOFF、WOFF2、EOT 形式のフォントをロード、検査、変換、サブセット化するための、無料で MIT ライセンスの pure-Python ライブラリです。ネイティブ依存関係は必要ありません。

Aspose.Font FOSS for Python をインストールするにはどうすればよいですか?

pip install "aspose-font>=1.0.0" を実行してください。システムレベルの依存関係は不要です。このライブラリは Windows、macOS、Linux 上で Python 3.10 以降で動作します。

サポートされているフォント形式はどれですか?

FontLoader.open() は TTF、OTF、CFF、Type 1、WOFF、WOFF2、EOT を読み取ります。FontConverter.convert() は TTF、CFF、WOFF、WOFF2 を書き込みます。EOT は読み取り専用です。

Font.to_bytes() は利用可能ですか?

いいえ。Font.to_bytes() は基底クラスで実装されていません。FontConverter.convert() を使用して、目的の形式で新しい Font を生成してください。

フォントをウェブ配信用にサブセット化できますか?

はい。FontSubsetter.subset_by_text(font, text) は、指定されたテキストに必要なグリフだけを含む新しい Font を返します。FontSubsetter.subset(font, codepoints)subset_by_gids(font, gids) は、より細かい制御を提供します。

  

サポートと学習リソース

 日本語