背景
我正在尝试将Google Noto Sans JP字体从.otf
转换为.ttf
,使用以下的fontforge脚本:
#!/usr/bin/env fontforge
Open($1)
CIDFlatten()
Generate($1:r + ".ttf")
Close()
当我在
.otf
上调用Open
时,会出现许多缺失字形的错误信息。No glyph with unicode U+07d22 in font
No glyph with unicode U+07d2f in font
No glyph with unicode U+07da0 in font
...
我的脚本将
.otf
转换为.ttf
,但是加载字体后,这些字符没有被渲染出来(看起来像这样:[X]
)。因此,我想要“填补空白”,并将相同的字形复制到缺失的位置。
问题在于,我运行以下脚本,尝试用一个相同的字形(U+f96a)替换其中一个缺失的字形(U+7d22):
#!/usr/bin/env fontforge
Open($1)
CIDFlatten()
Select(0uf96a)
Copy()
Select(0u7d22)
Paste()
SelectNone()
Generate($1:r + ".ttf")
Close()
然而,Fontforge 无法选择不存在的字符 U+7d22:
Select: Character not found: U+7D22
有人知道如何将字形复制到没有字形的码位上吗?
换句话说,有人知道如何填补这个字体中的空缺吗?
otf
转换成ttf
?(字体会变得非常大,并且所有的字形轮廓都会从立方贝塞尔曲线转换为二次贝塞尔曲线形式,导致失真) - Mike 'Pomax' Kamermansttf
而不是otf
字体格式 - 当退回到一种较少先进的格式时涉及的损失并不重要。 - Jack