如何将SVG文件转换/打包成OTF / TTF字体?

时间:2013-08-05 18:56:06

标签: svg fonts true-type-fonts cjk opentype

我正在考虑使用Droid字体为CJK脚本创建Ruby-like字体。

但是我不确定是否可以创建一个脚本来将多个SVG文件/字形转换/打包成一个字体文件?

“新”字形创建

有关信息,我想为CJK glyhs创建新的字形 - 如下所示:

  1. 将中文字形(例如)放入SVG文件中;
  2. 将prononciation(例如zhōng)添加到此SVG。
  3. 一旦在SVG中创建了所有新的CJK字形,我需要打包我的字体
  4. 数据来自Unihan datadase

    目标

    我想要类似于下图的内容,但将发音放在另一个地方,并有不同的方向。

    End result

1 个答案:

答案 0 :(得分:1)

FontForge有一个Python界面。 http://fontforge.org/python.html

字形对象包含exportimportOutlines等方法。 我的代码未经测试但是在阅读FontForge文档时,导出应该是这样的:

import fontforge
f = fontforge.open("SomeChineeseFont.ext")

# Not sure if this is the right way to select all glyphs. But you'll get there.
for i in f.selection.select.all(): 
    f[i].export("%s.svg" %i)

现在经过数周的SVG编辑(自动化)。是时候导入了:

import fontforge
f = fontforge.open("SomeChineeseFont.ext") # Use the orginal font as base

for i in f.selection.select.all(): 
    # Delete the original glyph or make sure your SVG 
    # only contains the contours you want to add.
    f.clear() 
    f[i].importOutlines("%s.svg" %i)

f.save("SomeRubyLikeChineeseFont.ext")

这就是你要找的地方吗?