编辑ttf字体的编程库

16
我正在寻找一个可以让我编辑True Type字体的库。
基本上,我想通过编程用自定义矢量图形替换某些字形。
语言并不那么重要,我很灵活。
谢谢!
3个回答

13
如果你不介意使用Python,那么有几个很好的选择。我建议看一下FontForge。它可以构建为嵌入Python解释器和从Python内部运行library。另一个很好的特性是,它的本地文件格式spline font database是ASCII编码的,并且相当好文档化,非常容易用自己的程序进行操作。我还有一个不太熟悉的替代方案TTX and TTLib。后者是一个Python库,前者是一个围绕它的包装器,可以往返于TTF和XML之间。

谢谢,我已经开始研究FontForge了,但是我的Python技能有限。我需要做的是在许多字体中用来自SVG的其他字符替换特定字符。 - clamp
1
Fontforge可能仍然是最容易的选择。将TTF和SFD相互转换不应该超过五行Python代码(有许多示例-请参见rbrito的链接)。一旦在SFD中,字形的描述与SVG并没有太大区别:移动到、线到、曲线到等等。您应该能够使用任何语言重写具有转换后字形的SFD。(如果您学习Python,FF已经有工具可以为您导入SVG。) - Boojum
TTX的链接已经失效,应该改为这个PyPI项目。请注意,“TTLib”似乎是FontTools中的一个组件;除非特别涉及到FontTools的那个部分,否则最好引用FontTools。 - John Y

9
由于您在编程语言方面非常灵活,因此您可以像@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脚本

因此,只有您的创造力是限制。


谢谢,我已经开始研究FontForge了,但是我的Python技能有限。我需要做的是在许多字体中用来自SVG的其他字符替换特定字符。 - clamp
@clamp,我现在才注意到你的评论。如果你需要帮助,请告诉我,我会尽力帮忙。 - rbrito

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接