汉字中,文字的数量比较多,做网站或者游戏的时候,需要几个特殊字体的文字,如果系统不包含。就需要从服务器端下载。如果就几个文字,把整个子字体文件都传输过来,就含有太多用不到的东西,还影响用户体验。这个时候就要把需要把,仅仅需要用的文字提取出来。谷歌提供了一个开源的字体提取工具 sfntly 可以,方便的把需要的字符提取出来。
终需要的工具是 sfnttool.jar, 可以自己构建,也可以直接下载。
链接地址:https://share.weiyun.com/5WEVTID 密码:xxagnq
安装 sfntly
yum install -y java
# 安装构建工具 ant
yum install -y ant
yum install -y git
git clone https://github.com/googlei18n/sfntly
cd sfntly/java/
# 生成jar文件
ant
## 后输出表示安装成功
#subsetter:
# [mkdir] Created dir: /root/sfntly/java/dist/tools/subsetter
# [jar] Building jar: /root/sfntly/java/dist/tools/subsetter/subsetter.jar
#
#BUILD SUCCESSFUL
查看安装的结果
tree dist
dist
├── lib
│ ├── sfntly.jar
│ ├── sfntly-javadoc.jar
│ └── sfntly-src.jar
├── sample
│ ├── sflint
│ │ └── sflint.jar
│ └── sfntdump
│ └── sfntdump.jar
└── tools
├── conversion
│ ├── eot
│ │ └── eotconverter.jar
│ └── woff
│ └── woffconverter.jar
├── fontinfo
│ └── fontinfo.jar
├── sfnttool
│ └── sfnttool.jar
└── subsetter
└── subsetter.jar
11 directories, 10 files
所需要的文件就是 sfnttool.jar
所需要的文件是就是 sfnttool.jar
# 复制到工作目录
cp dist/tools/sfnttool/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
# 使用方法
java -jar sfnttool.jar -s "这里是需要提取的字符" 字体文件 me.ttf
java -jar sfnttool.jar -s "这里是需要提取的字符" 字体文件 -e me.eot