TTF字体文件裁剪(支持简体中文,繁体中文TTF字体裁剪)

编程知识 更新时间:2023-04-04 10:21:03

Google开源的字体提取神器——sfntly

sfnttool,官网地址是:https://code.google/p/sfntly/

可用于编辑、创建和使用字体文件,主要针对OpenType,TrueType字体。
我在项目中,主要用于对汉字字体库的裁剪(ttf字库一般都很大10M以上),提取项目需要的一个汉字子集(subset)。

环境准备:
首先安装好Java环境,jdk 1.8.x以上,以及ant编译工具;
然后下载源码https://github/googlei18n/sfntly;
编译得到sfnttool.jar包。

裁剪字体库以及注意事项:
1. 使用SfntToolGUI.jar或sfnttool.jar 提取指定字符子集(SfntToolGUI.jar是基于sfnttool.jar加了GUI界面)

java -jar sfnttool.jar -s '需要提取的字体' 源字体库 导出的最终字体库
如:java -jar sfnttool.jar -s '01中国人' llk.ttf llk2.ttf

java -jar SfntToolGUI.jar
会有一个GUI界面可以操作(SfntToolGUI.jar是网上下载的),使用这个GUI工具点击确定生成完成后,需要关闭这个软件,新生成的ttf文件
才能预览或使用FontCreator打开,否则它会提示生成的ttf格式错误。

2. 需要注意的事项:
a. sfnttool 会根据当前系统使用的字符集编码(GBK or BIG5等)把输入的提取字符串转换成Unicode码,然后再去ttf查到到对应的字,进而提取。

我第一次使用也是遇到一个坑:我使用的是简体中文Windows系统(代码页936(chcp命令可查询当前系统使用的代码页)),输入GB2312编码的简体字符串,
且输入简体中文黑体ttf字体,确实可以裁剪到自己设定的子集ttf字体。
   由于最近项目用到繁体中文,需要对繁体中文ttf进行裁剪,很直观的想法就是输入BIG5编码的繁体字符串和输入一个繁体字库mingliu.ttf,
直接使用sfnttool提取子集,发现提取出来的并不是子集想要的。
   后来开始看sfnttool源代码,发现sfnttool会根据当前系统使用的字符集编码(我的系统使用GBK)把输入的提取字符串转换成Unicode码。也就是说我输入的是BIG5
编码的数据,而sfnttool把这些数据当做是GBK编码的数据来转成Unicode,这显然是有问题的。
   一个最简单的办法把电脑系统的代码页切换到950(BIG5),即切换到繁体版Windows,然后重新再使用这个工具。把BIG5编码的字符串输入到sfnttool
   另外一个办法就是修改下sfnttool源代码可配置当前输入的是什么编码的数据,以及正确的转成对应的Unicode。

b. 还有些细节
mingliu.ttc, 細黑體_0.ttc, ttc可以使用FontCreator转成mingliu_0.ttf, 細黑體_0.ttf

从 "mingliu_0.ttf" 提取字符子集,仅仅提取几个字符就有4M多大小(源ttf有26M);

而提取常用汉字3000个左右,使用 "細黑體_0.ttf" 提取子集仅仅2.5M, 使用 "mingliu_0.ttf" 提取的子集有8.5M 。(估计是跟字体库本身设置了什么有关)

 

另外网上还有一个TTF字体裁剪小工具“TTF字体库裁剪转换工具”:

经过测试有部分字体不支持,也不支持繁体字体裁剪。

 

工具下载地址:https://download.csdn/download/leichelle/10673940

 

参考资料:
【工具】在TTF字体中提取想要的文字,让字体文件变迷你
https://blog.csdn/ldpjay/article/details/46561031

大坑已填,留个纪念:裁剪ttf,让其大小更适用于移动设备与网页
https://blog.csdn/tianxiawuzhei/article/details/45720563

sfntly源代码
https://github/googlei18n/sfntly
https://github/rillig/sfntly

谷歌开源的字体提取工具 sfntly 的正确打开方式
https://www.skiy/201706064777.html

中文汉字 | ASCII | Unicode互相转换工具 - aTool在线工具
http://www.atool/chinese2unicode.php

 

更多推荐

TTF字体文件裁剪(支持简体中文,繁体中文TTF字体裁剪)

本文发布于:2023-04-04 10:21:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/f5dfa3d32f353937cbce930cd8931559.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字体   简体中文   繁体中文   文件   TTF

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 42108文章数
  • 14阅读数
  • 0评论数