1. はじめに
本記事では、PythonでTTCファイルからTTFファイルを抽出する方法を紹介します。TTCファイルとは、TrueTypeコレクションの略で、1つのファイルに複数のTrueTypeフォントが含まれています。一方、TTFファイルとは、TrueTypeフォントの略で、1つのファイルに1つのTrueTypeフォントが含まれています。
TTCファイルからTTFファイルを抽出する必要がある場合、Pythonのライブラリ「fontTools」を使用することで簡単に実現できます。本記事では、TTCファイルからTrueTypeフォントを抽出し、各TTFファイルを保存するPythonコードを紹介します。
ローカルにPython環境がない方は、Google Colaboratoryを使うのがお勧めです。そのやり方も後述するのでぜひ最後まで読んでみてください。Pythonを使ったことがない方でもコードのコピペでできる手順になっています。
2. コード
以下がサンプルコードになります。
from fontTools.ttLib import TTCollection
# TTCファイルのパスを指定します。
ttc_path = "./font/meiryo.ttc"
# 出力するフォルダのパスを指定します。
output_dir = "./output/"
# TTCファイルを開き、TrueTypeフォントを抽出します。
ttc = TTCollection(ttc_path)
for i, ttf in enumerate(ttc):
# 出力するttfファイルの名前を指定します。
output_path = output_dir + f"meiryo_{i}.ttf"
# ttfファイルを保存します。
ttf.save(output_path)
3. コードの説明
- “fontTools”ライブラリから”TTCollection”クラスをインポートします。
- 抽出するTTCファイルのパスを
ttc_path
に指定します。 - 抽出したTTFファイルを保存するフォルダのパスを
output_dir
に指定します。 TTCollection
を用いて、指定したTTCファイルを開き、TrueTypeフォントを抽出します。- 抽出したTTFファイルを順番に取り出し、
enumerate()
関数を用いてi
にはインデックス、ttf
にはTrueTypeフォントが格納されます。 - 出力するttfファイルの名前を指定します。
- ttfファイルを保存します。
業務で使えるpythonコードの例がいくつも載っているので、こちらの書籍もおすすめです!
4. 使っているライブラリとバージョンの一覧
以下が使っているライブラリとバージョンの一覧になります。
- fonttools 4.27.0
Python 3.9.13で動作確認しています。
5.Google Colaboratoryで実行する
Google Colaboratory(通称:Colab)は、インターネットブラウザを通して利用できる無料のクラウドベースのコーディング環境です。Pythonをローカル環境にインストールせずとも、ブラウザさえあれば誰でもPythonプログラミングを行うことができます。Colabは、Jupyterノートブック形式でコード、テキスト、画像などを一つのドキュメントにまとめて共有・編集することが可能です。また、Google Driveと連携し、作成したノートブックを簡単に保存・共有することができます。重要な特徴として、無料でGPUを利用できる点があり、これによりデータ分析や機械学習の学習・実験を手軽かつ高速に実行することができます。Pythonを始めたい初学者から、データサイエンスや機械学習のプロジェクトを行う研究者・エンジニアまで、幅広いユーザーに利用されています。これを機に使用してみてください。
GoogleアカウントにログインしGoogleDriveにアクセスする
お手持ちのGoogleアカウントにログインし、GoogleDriveにアクセスしてください。
Google Colaboratoryをインストールする
Google Colabratoryを使用したことがない方はインストールが必要になります。
インストール済みの方は本手順を飛ばして、「コードを実行する」から実施してください。
①Google Driveの「新しいフォルダ」→「その他」→「アプリを追加」を選択
②検索ボックスに「Google Colaboratory」を検索し、選択する
③「インストール」を押下
以下のようなポップアップが出たら、「続行」を押下
以下のポップアップがでたら、チェックをいれてOKを押下
④Google Drive→「新しいフォルダ」→「その他」で「Google Colaboratory」が選択できることを確認する
これでGoogle Colaboratoryが使えるようになりました。
コードを実行する
Google Drive→「新しいフォルダ」→「その他」で「Google Colaboratory」を選択し、新しいGoogleColaboratoryファイルを作成
以下のようなページになります
前準備①Pythonバージョンを確認
以下のコマンドを入力して、バージョンを確認する
実行時は「Shift+Enter」か、行の左の実行ボタンを押下する
!python --version
実行結果が行の下に表示されます。
このときのバージョンは「Python 3.10.2」でした。ここから大きく変わらなければよほど問題ないと思います。
前準備②必要なライブラリをインストール
今回は「Fonttools」をインストールします。
以下のコマンドを実行してください。
pip install fonttools==4.27.0
実行するとインストールが開始され、最後に「Successfully installed~」というメッセージが出れば完了です。
前準備③左側のフォルダアイコンを選択し、対象のttcファイルをアップロードする
コードを張り付ける
上記で紹介したコードを貼り付けてファイルパス名を変えています。
ファイルパス名は環境に応じて変える必要があるので注意してください。
実行し出力ファイルを確認
「Shift+Enter」で実行し、エラーメッセージが出力されず、左のフォルダ内に分割されたttfファイルが出力されることを確認してください。出力されるttfファイル数はttcによって異なります。
このフォルダは一時フォルダで一定時間がたつと消えてしまうので、必要に応じてダウンロードしてローカルに保存してください。
一定時間後に再度実行したい場合は、ttcファイルのアップロードをしてから「ランタイム」→「全てのセルを実行」でもう一度出力できます。
6. まとめ
今回はPythonのライブラリ”fontTools”を用いて、TTCファイルからTTFファイルを抽出する方法を紹介しました。TTCファイルからTTFファイルを一括で抽出したい場合は、このサンプルコードを使ってみてください。
コメント