本文目录:

前言

有时候我们需要让网页加载自定义字体文件,但是通常的字体格式(TTF、OTF)体积太大了,这就需要我们将其转换为更小体积的字体文件格式(WOFF2)
经过我的研究,找到了一种本地压缩字体可行的方法

压缩第一步

首先是取子集,大概意思是只保留指定的文字或者字符
如果你还没有安装FontTools,请使用以下终端命令安装

$ pip install fonttools

取子集我们需要定义一个纯文本文件,里面包含所有要保留的字符,这里分享一个包含7000汉字和全/半角字符和英文的txt文件:zfj.zip
然后使用以下命令对字体取子集

$ fonttools subset "(输入的字体文件名)" --text-file="(字符txt文件)" --output-file="(输出的字体文件名)"

我测试对全濑体(应该是吧)取子集后,文件体积从 36MB 减少到了 5.9MB,足足小了84%

压缩第二步

取完子集后,我们将对字体文件进行压缩,主要是压缩成 WOFF2 格式,这一步其实也可以使用在线工具转换并压缩
压缩命令很简单:

 $ fonttools ttLib.woff2 compress "(输入的字体文件名)" -o "(输出的字体文件名)"

对上面已经取过子集的字体经过压缩后,体积差不多减少了55%,从 5.9MB 减小到了 2.7MB

操作完上面两个步骤后,字体的体积减少了90%还要小,网站字体加载的时候就不会因为字体太大而导致页面加载缓慢了
但是有时候我们需要用到一些非常用但是又不是很生僻的汉字,这里分两种情况:如果文本是确定的,可以将这些字加入到定义保留字符的文件中即可;如果有用户输入,又对字体要求较高,我们也可以仅仅执行压缩步骤,也能将字体体积减小到70%,总比没有好)