本地文字切片-mapbox本地化
1. 本地文字切片
2. 安装
wget https://github.com/mapbox/node-fontnik/archive/v0.5.0.tar.gz
- 安装
#解压缩
tar -xzf v0.5.0.tar.gz
cd node-fontnik-0.5.0
#安装库文件
#这个必须执行到,未执行需要卸载重装,需要curl
apt-get install curl
#一定要使用全局代理运行
#一定要使用全局代理运行
#一定要使用全局代理运行
./install_mason.sh
#安装node相关
npm install
#编译
make
3. 使用
- 准备需要转换字体的ttf文件,这里使用微软雅黑 msyh.ttf
- 编写需要转换使用的js convert.js
var fontnik = require('.');
var fs = require('fs');
var path = require('path');
var convert = function(fileName, outputDir) {
var font = fs.readFileSync(path.resolve(__dirname + "/" + fileName));
output2pbf(font, 0, 255, outputDir);
}
function output2pbf(font, start, end, outputDir) {
if (start > 65535) {
console.log("done!");
return;
}
fontnik.range({font: font, start: start, end: end}, function(err, res) {
var outputFilePath = path.resolve(
__dirname + "/" + outputDir + "/" + start + "-" + end + ".pbf");
fs.writeFile(outputFilePath, res, function(err){
if(err) {
console.error(err);
} else {
output2pbf(font, end+1, end+1+255, outputDir);
}
});
});
}
convert("./msyh.ttf", "./msyh");
- 将msyh.ttf 和convert.js 复制到node-fontnik-0.5.0路径下
- 运行js转换文字,出现 done! 则为转换成功。
node convert.js
5.转换结果为XX-YY.pbf的字体文件夹