1、安装 Python 3.7 和 pip,再运行 pip install fonttools 来安装 fontTools
2、运行pyftsubset --help查看命令帮助,得知需要 Unicode 列表来提取字体子集。
3、常用的6500字的unicode表文件(下载)和常用3500的unicode表文件(下载),其中3500为常用汉字,会出现缺字现象,例如:“芷惟蓑酽啖阑哇尴尬攫韶遽惚噬獠逡蹑媪蹑惮惬憧憬殚峨眩悸搐抉瞰噬褶骼黝”。6500的基本上涵盖比较全。
4、将需要处理的ttf字体和unicode表文件放在同目录一起,运行:pyftsubset fang-zheng-hei-ti-gbk.ttf --unicodes-file=sc_unicode.txt
5、这时候在同目录下会生成一个带subset的同文件ttf,这个就是裁剪后的ttf文件。
6、到在线网页: https://products.aspose.app/font/zh/conversion/ttf 下面选择ttf转换woff2,推荐woff2,体积比woff更小一点,对中文支持正常。当然woff也可以。
7、转换后下载会得到一个同文件名的woff2后缀的文件,这个文件就是所需要的网页字体文件。
8、将字体文件上传到服务器根目录,然后编写css文件,例如下:

@font-face {
  font-family: "newf1";
  src:
  url("/newfonts_woff2/newf1.woff2") format("woff2");
  font-display: swap;
}

/*建立一个新class引用*/
.font_newA1{
	  font-family: "newf1" !important;
}

10、这样就可以在htm中引用了。
11、比如下面对比:

正常默认字体显示:这是一段默认字体输入的网页

采用自定义字体显示:这是采用新字体输入的网页

备注
1、font-face中引用woff2格式就可以,woff或ttf不需要再单独设置,现代浏览器基本上都支持woff2.
2、建议不要同时新增太多的font-face中文字体,一般用几个就css设置几个。不用的就不要设置,因为就是不用浏览器也会下载该字体。
3、3500的unicode,一般woff2的中文体积大概在1M左右,还是能接受。6500字的woff2体积大概在2M,看具体使用需求。

参考资料:https://www.imaegoo.com/2020/chinese-font-compress/