コマンドラインで sfd ファイル (fontforge) を ttf、otf、woff、svg に変換する

コマンドラインで sfd ファイル (fontforge) を ttf、otf、woff、svg に変換する

sfd ファイル (Fontforge の作業形式) を主要なフォント形式 (少なくとも otf、ttf、woof、svg) に自動的に変換する方法を探しています。

しかし、コマンドラインで実行する必要があり、GUI から実行する必要はありません。

残念ながら、Fontforge アプリケーションはこれをサポートしていないようです (マニュアルページを読みましたが、この使用法については何も触れられていません)。とにかく、コマンドラインから実行する必要がありますが、Fontforge から実行する必要はありません。Fontforge の作業形式「SFD」をメインのフォント形式に変換できる他のアプリケーションがあれば、それも使用できます。

では、次のようなコマンドを取得するにはどうすればよいでしょうか。

sfd2ttf input.sfd output.ttf
sfd2otf input.sfd output.otf
sfd2woff input.sfd output.woff
sfd2svg input.sfd output.svg

答え1

Fontforgeを使えばできます。ここ:

-c スクリプト文字列

FontForge の最初の引数 (最初の引数が -lang の場合は 2 番目の引数) が "-c" の場合、後続の引数はスクリプト コマンドを含む文字列として扱われ、それらのコマンドが実行されます。残りの引数はすべてスクリプトに渡されます。

$ fontforge -c 'Open($1); Generate($2)' foo.sfd foo.ttf

「foo.sfd」からフォントを読み取り、そこから「foo.ttf」というTrueTypeフォントを生成します。

convertsfdあなたの場合は、次のようなスクリプトを作成できます。

#!/bin/bash
fontforge -lang=ff -c 'Open($1); Generate($2)' "$1" "$2"

実行可能にして、次のように呼び出します。

$ ./convertsfd foo.sfd foo.ttf

foo.otf必要に応じて、2 番目の引数を または他の形式に変更します。私はttfおよびのみでテストしましたotf

どこからでもスクリプトを呼び出すには、スクリプトを~/.local/binまたは 内の他のディレクトリに配置するだけですPATH

関連情報