Node.jsで特定のフォントを使えるようにする
Cloud FunctionsなどのNode.js環境で、日本語フォントを使いたいけど入ってないことがあると思います。そんな時にGoogle Fontsなどからダウンロードしてきたフォントを使えるようにできます。
はじめに
Node.js で fc-list
コマンドを実行して、既に使えるフォントを確認してみましょう。
const result = spawnSync('fc-list'); console.log(result.stdout.toString(); /usr/share/fonts/truetype/tlwg/TlwgTypo-Bold.ttf: Tlwg Typo:style=Bold /usr/share/fonts/truetype/tlwg/TlwgTypewriter-BoldOblique.ttf: Tlwg Typewriter:style=Bold Oblique ...
こんな感じで使えるフォントの一覧が表示されます。
fontconfigを作成する
手元にあるフォントをどこかNode.jsから見えるディレクトリに置きます。そして、fonts.confファイルを作成して、フォントのパスを記載します。例えば、下記の階層だと /src/fonts/google
と書きます。
/src/fonts ├ fonts.conf ├ /google ├ 〜.otf
fonts.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <dir>/src/fonts/google</dir> </fontconfig>
FONTCONFIG_PATHを指定する
次にNode.jsの環境変数 FONTCONFIG_PATH
に、fonts.confがあるディレクトリを指定します。例の場合だと、/src/fonts/
です。
process.env.FONTCONFIG_PATH = '/src/fonts/';
これで、もう一度 1. を実行すると、Node.jsから使いたかったフォントが一覧に表示されると思います!
※フォントのライセンスにはくれぐれも注意しましょう