Skip to content

部分 otf 字体的 advanceWidth 值读取错误,造成文字间距错乱字符堆叠 #46

@dancancer

Description

@dancancer

部分 otf 字体的 advanceWidth 值读取错误,造成文字间距错乱字符堆叠,仅影响部分 otf 字体的非中文字符

与 opentype.js 对比排查后发现,如下部分代码逻辑中在部分 otf 字体场景下 nominalWidthX 值获取有误,导致最终对应字形的 advanceWidth 有误

cff.nominalWidthX = privateDict.nominalWidthX;

排查过程中还发现该处代码中 item.advanceWidth 值正常 glyf[i].advanceWidth 值有误,简单修改设置优先取 item.advanceWidth 是否可行?

glyf[i].advanceWidth = glyf[i].advanceWidth || item.advanceWidth || 0;

以下截图为问题具体现象,上图为完整字体中 a 字形的相关参数,下图为截取后的字体。注意对比 advanceWidth 值

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions