Open dancancer opened 3 years ago
部分 otf 字体的 advanceWidth 值读取错误,造成文字间距错乱字符堆叠,仅影响部分 otf 字体的非中文字符
与 opentype.js 对比排查后发现,如下部分代码逻辑中在部分 otf 字体场景下 nominalWidthX 值获取有误,导致最终对应字形的 advanceWidth 有误
https://github.com/kekee000/fonteditor-core/blob/9e43033ac2586bc3249a8b695132f4d3a084823e/src/ttf/table/CFF.js#L160
排查过程中还发现该处代码中 item.advanceWidth 值正常 glyf[i].advanceWidth 值有误,简单修改设置优先取 item.advanceWidth 是否可行?
item.advanceWidth
glyf[i].advanceWidth
https://github.com/kekee000/fonteditor-core/blob/9e43033ac2586bc3249a8b695132f4d3a084823e/src/ttf/otfreader.js#L110
以下截图为问题具体现象,上图为完整字体中 a 字形的相关参数,下图为截取后的字体。注意对比 advanceWidth 值
得研究一下,otf 相关解析是照搬 opentype.js 的,可能需要做一些修正,能帮忙给有问题的字体和字符么。
同有这个问题,请问现在这个有解法么?
部分 otf 字体的 advanceWidth 值读取错误,造成文字间距错乱字符堆叠,仅影响部分 otf 字体的非中文字符
与 opentype.js 对比排查后发现,如下部分代码逻辑中在部分 otf 字体场景下 nominalWidthX 值获取有误,导致最终对应字形的 advanceWidth 有误
https://github.com/kekee000/fonteditor-core/blob/9e43033ac2586bc3249a8b695132f4d3a084823e/src/ttf/table/CFF.js#L160
排查过程中还发现该处代码中
item.advanceWidth
值正常glyf[i].advanceWidth
值有误,简单修改设置优先取item.advanceWidth
是否可行?https://github.com/kekee000/fonteditor-core/blob/9e43033ac2586bc3249a8b695132f4d3a084823e/src/ttf/otfreader.js#L110