在命令列中將 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)參數是“-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根據需要將第二個參數更改為或 為其他格式,我僅使用ttf和進行了測試otf

要從任何地方調用腳本,只需將其放在您的~/.local/binPATH.

相關內容