您的位置:首页 > 其它

精简ttf,svg字体库文件,删除多余字体,保留用到字体

2016-06-20 14:20 295 查看
有一个Android项目使用少女字体, Android手机默认又没有, 一个少女字体大概3M多, APK打包下来6M多, 字体占了一半,于是想办法精简, 办法是找到了如下:

但应用了我提取字体后才发现,这个是行不通了,只提取strings.xml中包含的字体, 但用户输入的字和数据库中保存的字就没有包含, 程序显示部分字是少女字体,部分默认字体. 于是还是放弃了.

 

提取字体方法贡献出来,在其它很多地方都可以用到的.

 

1. 安装nodejs

下载: http://nodejs.org/download/
Current version: v0.10.35

Windows Installer (.msi)

2. 安装nodjs, next->next->....

3. git更新依赖库;

git clone https://github.com/qdsang/fonts-streamline
git clone https://github.com/nfroidure/svgfont2svgicons
git clone https://github.com/nfroidure/svgicons2svgfont
4. 安装依赖库 

在D:\Program Files\nodejs目录下

npm install E:\source\Font\fonts-streamline-master

npm install E:\source\Font\fonts-streamline-master

npm install E:\source\Font\fonts-streamline-master

运行npm可能报错, 原因是是提示那个目录(如:C:\Users\wv\AppData\Roaming\npm)不存在,自己新建一个.

安装完成,在D:\Program Files\nodejs\node_modules目录下就有一个.bin文件夹,还有三个fonts-streamline,svgfont2svgicons,svgicons2svgfont

把.bin下所有东西copy到D:\Program Files\nodejs目录下,修改.cmd文件. 如:fonts-streamline.cmd(只修改刚安装那三个,参考:npm.cmd)

原来:

Java代码  


@IF EXIST "%~dp0\node.exe" (  

  "%~dp0\node.exe"  "%~dp0\..\fonts-streamline\bin\fonts-streamline.js" %*  

) ELSE (  

  @SETLOCAL  

  @SET PATHEXT=%PATHEXT:;.JS;=;%  

  node  "%~dp0\..\fonts-streamline\bin\fonts-streamline.js" %*  

)  

 

修改后:

Java代码  


@IF EXIST "%~dp0\node.exe" (  

  "%~dp0\node.exe"  "%~dp0\.\node_modules\fonts-streamline\bin\fonts-streamline.js" %*  

) ELSE (  

  node  "%~dp0\.\node_modules\fonts-streamline\bin\fonts-streamline.js" %*  

)  

 

不修改运行fonts-streamline时会报错, 一个就是找不到路径, 如果你没有就不用修改这三个文件.

5. 提取字体(只保留需要的)

fonts-streamline "一块钢板的艺术之旅40道工艺制程" ./DFPShaoNvW5.svg ./showNv_drawing_diet.ttf

注意:fonts-streamline只支持输入是.svg格式字体文件.

可以在线转一下ttf2svg: http://onlinefontconverter.com/font?id=p1
 

6. 附字体去重工具
http://my.oschina.net/vabright/blog/62372
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  精简字体