Command-Line

在命令行中將 sfd 文件 (fontforge) 轉換為 ttf、otf、woff、svg

  • July 24, 2020

我搜尋了一種將 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

你可以用 Fontforge 來做,見這裡

-c 腳本字元串

如果 FontForge 的第一個(或第二個,如果第一個是 -lang)參數是“-c”,那麼後面的參數將被視為包含腳本命令的字元串,並且這些命令將被執行。所有剩餘的參數都將傳遞給腳本。

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

將從“foo.sfd”中讀取一種字型,然後從中生成一個名為“foo.ttf”的真字型

在您的情況下,您可以創建一個腳本,比如說convertsfd,像這樣

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

使其可執行,並像這樣呼叫它:

$ ./convertsfd foo.sfd foo.ttf

根據需要將第二個參數更改為foo.otf或其他格式,我僅使用ttfand進行了測試otf

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

引用自:https://unix.stackexchange.com/questions/358673