purplebamboo / font-carrier

font-carrier是一个功能强大的字体操作库,使用它你可以随心所欲的操作字体。让你可以在svg的维度改造字体的展现形状。
http://purplebamboo.github.io/font-carrier/
MIT License
1.61k stars 194 forks source link

setSvg,同一个svg文件只修改path中的几个点,生成字体文件之后页面报错Failed to decode downloaded font? #56

Open yifengwang66 opened 3 years ago

yifengwang66 commented 3 years ago

两个svg文件,只有细微的位置差别,比如一个上三角,一个下三角,其中一个生成的字体文件引入到页面后可以正常使用,但是加入另一个后,生成的字体文件在页面引用时图标失效,且控制台报出Failed to decode downloaded font警告

yisibl commented 3 years ago

上传一下错误的SVG和生成的 TTF

---原始邮件--- 发件人: "Yifeng @.> 发送时间: 2021年7月14日(周三) 下午3:06 收件人: @.>; 抄送: @.***>; 主题: [purplebamboo/font-carrier] setSvg,同一个svg文件只修改path中的几个点,生成字体文件之后页面报错Failed to decode downloaded font? (#56)

两个svg文件,只有细微的位置差别,比如一个上三角,一个下三角,其中一个生成的字体文件引入到页面后可以正常使用,但是加入另一个后,生成的字体文件在页面引用时图标失效,且控制台报出Failed to decode downloaded font警告

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

yifengwang66 commented 3 years ago

issus好像不支持发送svg和ttf格式的文件,我这里把两个svg文件的内容放过来吧

<!-- 可以正常使用的svg -->
<?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="9px" viewBox="0 0 14 9" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <title>形状结合</title>
    <g id="提报审批-H5" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="二级负责人/待二级审批/名单非空" transform="translate(-387.000000, -106.000000)" fill="#666666">
            <path d="M389,113 L389,111 L396.999,111 L397,103 L399,103 L398.999856,111.982838 C398.999952,111.988547 399,111.994268 399,112 L398.999,112.017 L399,113 L389,113 Z" id="形状结合" transform="translate(394.000000, 108.000000) rotate(-315.000000) translate(-394.000000, -108.000000) "></path>
        </g>
    </g>
</svg>

<!-- 不能正常使用的svg -->
<?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="9px" viewBox="0 0 14 9" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <title>形状结合1</title>
    <g id="提报审批-H5" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="二级负责人/待二级审批/部门选择" transform="translate(-387.000000, -107.000000)" fill="#666666">
            <path d="M389,119 L389,117 L396.999,117 L397,109 L399,109 L398.999856,117.982838 C398.999952,117.988547 399,117.994268 399,118 L398.999,118.017 L399,119 L389,119 Z" id="形状结合1" transform="translate(394.000000, 114.000000) rotate(-135.000000) translate(-394.000000, -114.000000) "></path>
        </g>
    </g>
</svg>

两个文件只有位置的差别,但是生成了字体文件之后引入到页面中使用,chorme下会报出Failed to decode downloaded font错误,但是safari可以正常展示

yisibl commented 3 years ago

SVG 初看下来太小了,调成 1024 以上 ttf 打包成 zip 上传

yifengwang66 commented 3 years ago

归档.zip 这里面是两个会导致问题的svg文件,以及由这两个svg打包出来的ttf文件 您说的svg太小了是说这个svg文件太小了吗,但是项目里有其他比这个svg更小的svg,那些svg打包出来没有出现这种问题

yisibl commented 3 years ago

你升级一下 package.json 中的 svg2ttf 依赖,上游有调整,可能会解决这个问题。我暂时没有时间。