如果你不介意使用Python,那么有几个很好的选择。我建议看一下FontForge。它可以构建为嵌入Python解释器和从Python内部运行library。另一个很好的特性是,它的本地文件格式spline font database是ASCII编码的,并且相当好文档化,非常容易用自己的程序进行操作。我还有一个不太熟悉的替代方案TTX and TTLib。后者是一个Python库,前者是一个围绕它的包装器,可以往返于TTF和XML之间。
由于您在编程语言方面非常灵活,因此您可以像@Boojum所说使用Fontforge,并且您将有两个接口可用:其本机语言(在手册中称为“传统”接口)和一个非常仔细详细的Python接口very carefully detailed。Fontforge在许多Linux发行版中都可用,包括Debian和Ubuntu等(免责声明:我是维护fontforge在Debian中的团队成员,因此也在Ubuntu中)。它也适用于Mac和可能的Windows,但我不确定它们是否作为现成的构建可执行文件提供。好了,回到Fontforge。Fontforge能够读写许多格式的字体,其“本地”格式(称为Spline Font Database)是一种纯文本格式,如果您小心操作,非常容易使用文本编辑器进行阅读和操作。从编程方面来看,您可以查看一个非常基本的Python脚本,它使用https://github.com/rbrito/urw-garamond/blob/master/scripts/generate.py中列出的脚本从样条字体数据库文件(SFD)创建OpenType字体。但是不用担心:读取SFD文件的方式(函数)与您读取TrueType、OpenType、Postscript等字体的方式相同。作为对字体进行简单操作的另一个示例,您可以查看一个脚本,该脚本以字体作为输入并创建该字体的倾斜版本:https://github.com/rbrito/urw-garamond/blob/master/scripts/to-slant.py。 关于“可学性”,有很多项目提供其脚本并且可以通过这些脚本的示例轻松学习。例如,DejaVu项目和Barry Schwartz的sortsmill脚本。 因此,只有您的创造力是限制。