通过FontForge Python绑定更改字体的em大小

4 投票
1 回答
1423 浏览
提问于 2025-04-18 03:05

我有一个小的Python脚本,用来通过FontForge更改字体:

import fontforge

font = fontforge.open('font.ttf')
font.em = 1000
font.generate('font.svg')
font.close()

关键点是

font.em = 1000

(我需要在进一步处理之前,把几个字体的em大小标准化。)

当我在FontForge的图形界面里做这个时,字体转换得很好:打开字体,设置em大小为1000(这一步通常需要FontForge花一点时间),然后导出为SVG。得到的字体效果正如我所期待的那样。

但是,通过上面的脚本来做这个时,结果却很混乱,有些字形没有缩放,有些字形的重音符号位置不对,等等。

这个脚本可能有什么问题呢?有没有什么办法可以让FontForge在导出之前正确地缩放字体的em大小?

1 个回答

0

EM大小是指字母的上升部分和下降部分的总和。

不要直接给它设置一个具体的数值。

font.ascent = 860
font.descent = 140
font.em = font.ascent + font.descent

撰写回答