如这个博客网站的标题“时舟”和横幅处的“新年快乐”处所示,建站多多少少都会用到各种特殊字体。但是如果不对字体进行压缩的话文件过大不仅拖慢加载速度还浪费流量,这时候可以用到一个名叫 sfnttool (项目地址)的工具。下载链接:蓝奏云(密码:5cy3)

使用这个工具需要确保 PC 已经安装 java 环境(下载链接:官网,通过此链接下载无需登录 Oracle 账号)。CMD 运行 "java" 能够显示即可。具体安装过程不再赘述。

sfnttool.jar 内置命令如下:

java -jar sfnttool.jar -h
Subset [-?|-h|-help] [-b] [-s string] fontfile outfile
Prototype font subsetter
        -?,-help        print this help information
        -s,-string       String to subset
        -b,-bench        Benchmark (run 10000 iterations)
        -h,-hints        Strip hints
        -w,-woff         Output WOFF format
        -e,-eot  Output EOT format
        -x,-mtx  Enable Microtype Express compression for EOT format

sfnttool 可能不接受重复的字符。通过以下 Python 脚本可以进行去重。

text = """文本的内容,三个引号包含的文本可跨行"""
lst = []
for char in text:
    if char == "\n":
        continue
    if char in lst:
        pass
    else:
        lst.append(char)
for char in lst:
    print(char, end="")

提取字体文件中的指定字符,首先在该目录下打开 CMD (在文件路径栏中输入 cmd 即可),假设提取的字符为“时舟新年快乐 ”,同目录下字体源文件名为 original.ttf ,提取的字体文件名为 new_font.ttf,按以下写法即可:

java -jar sfnttool.jar -s '时舟新年快乐 ' original.ttf new_font.ttf

此外,提取字体中的常用字符可以尽可能减少字体大小,提高使用体验。获取到文件后即可直接使用。

同类工具还有 Font Spider(项目地址)。