背景介绍

在网页设计中,设计师往往使用多种字体文件来实现特定的视觉效果。然而,许多常用的简体中文字体文件大约在6MB到10MB之间,这使得字体文件的加载速度成为一个问题,尤其是当页面中需要加载多个字体文件时。

现状及优化需求

为了优化加载性能,可以考虑只提取并使用所需的字体字符。之前的文章中介绍了通过一些工具从字体文件中提取所需字符的方法(文章“TTF字体提取特定字符生成6kb字体”),但那种方式有些繁琐,需要手动复制字体内容。现在我们将介绍一种更加高效且现代的解决方案,使用 Python 环境来提取字体。

如果你擅长英文,也可以参考官方文档来获取更多信息。

步骤指南

1. 安装 Python 环境

首先,你需要安装 Python 环境。可以访问 Python 官网 下载并安装最新版本(我使用的是 Python 3.13)。

安装完成后,可以通过以下命令确认是否安装成功并查看版本号:

py --version

你还可以检查是否安装了 pip(Python 的包管理工具):

py -m pip --version

正常情况下,你会看到类似以下输出:

C:\Users\Administrator\Desktop>py --version
Python 3.13.0

C:\Users\Administrator\Desktop>py -m pip --version
pip 24.2 from C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\pip (python 3.13)

2. 安装字体处理工具

接下来,我们需要安装 fonttools 库,这是一个强大的字体处理工具。在命令行中执行以下命令进行安装:

pip install fonttools

3. 提取所需字体字符

安装完成后,你就可以开始提取所需的字体字符了。假设你已经准备好了一个字体文件,并且知道需要提取哪些字符。

在字体文件夹中打开命令行(CMD),并执行如下命令:

pyftsubset 123.ttf --text-file="666.txt" --flavor=woff2

其中,各参数的含义如下:

  • 123.ttf:待优化的字体文件。
  • --text-file="666.txt":指定一个包含你需要提取字符的文本文件(例如,“Python”这几个字母)。
  • --flavor=woff2:输出格式为 WOFF2,这是现代网页使用的压缩字体格式。若不指定此参数,默认输出格式将与原字体文件相同。

执行该命令后,你将得到一个优化后的字体文件 123.subset.woff2,其中仅包含所需的字符。

字符集

3500常用汉字表7000通用汉字,来自北京语言大学

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
`1234567890
~!@#$%^&*()
-=_+
[]{};':",.<>/?\|
【】;‘’:“”,。《》、?|
~!@#¥%……&*()——+

总结

通过这种方法,你可以大大减小字体文件的体积,提高网页加载速度和性能。