前言

在做微信小程序时,需要使用第三方字体库,但是该字体库有30+MB大小,导致微信使用wx.loadFontFace一直报错。网速很慢的话,极其影响用户体验,小的字体库没有问题,所以是字体库太大导致报错,并且加载也很慢,致使字体无法生效。换字体是不可能的,特此记录一下如何将38MB的字体库压缩成5.28MB的,这种压缩比率,一般的在线压缩或软件是达不到的。


经历一次压缩和转换最终从37MB压缩为5.28MB,已经达到我的需求了
前端 / 小程序——第三方字体库压缩(压缩率80%)-LMLPHP


压缩字体

前置条件:python环境

  1. 借助python环境,安装fonttools插件

没有pip包管理工具先装pip,详细的我就不说了,当然python环境是也必须的

pip install fonttools

  1. 下载字体编码列表文件,另存为sc_unicode.txt
    下载地址:字体编码(打开直接网页打开,需要另存为sc_unicode.txt文件)

  1. 执行压缩命令(注意字体文件和字体列表编码文件要放在同一个目录下面)
pyftsubset qijifallback.ttf --unicodes-file=sc_unicode.txt
// `qijifallback.ttf`(要压缩的字体文件)
// `sc_unicode.txt`(字体编码列表文件)

解释:

qijifallback.ttf:要压缩的字体文件
sc_unicode.txt:字体编码列表文件

压缩命令执行完毕后,会在当前目录出现压缩过的字体库qijifallback.subset.ttf


  1. 使用在线压缩工具 cloudconvert官网 ,将ttf文件转换成woff2文件(进一步压缩大小)

前端 / 小程序——第三方字体库压缩(压缩率80%)-LMLPHP


总结

经过亲自测试,压缩后依旧可用并且字体样式没受影响,从37M压缩到5.28M,压缩比例达到80%


最后再分享一个免费可商用的字体网站:https://www.ecan5.com/font/

11-16 15:27