ttf,svg,woff,eot格式转换
node.js
项目
https://github.com/fontello/ttf2eot
https://github.com/fontello/ttf2woff
https://github.com/qdsang/ttf2svg
https://github.com/fontello/svg2ttf
安装
npm install -g ttf2eot npm install -g ttf2woff npm install -g ttf2svg npm install -g svg2ttf
使用
ttf2svg fontello.ttf fontello.svg svg2ttf fontello.svg fontello.ttf ttf2woff fontello.ttf fontello.woff ttf2eot fontello.ttf fontello.eot
Java
batik项目
java -jar batik-1.9/batik-ttf2svg-1.9.jar fontname.ttf -l 0 -h 65535 -o fontname/fontname.svg //所有 java -jar batik-1.9/batik-ttf2svg-1.9.jar fontname.ttf -l 19968 -h 40870 -o fontname/fontname-hanzi.svg //汉字 java -jar batik-1.9/batik-ttf2svg-1.9.jar fontname.ttf -l 32 -h 165 -o fontname/fontname-shuzi.svg //数字
提取文件中的中文,并生成该部分文字的字体
function utf8_to_unicode2( $str ) {
return str_replace(['\\','"'],['$',''],json_encode($str));
}
$fontname='fontname';//字体名称
$files=glob('files/*.*');
$font='’‘“”、:;!¥…()【】?,。《》';//标点符号
foreach($files as $file){
$str=file_get_contents($file);
preg_match_all('/[\x{4e00}-\x{9fa5}]/u',$str,$matches);
$font.=implode('',$matches[0]);
}
file_put_contents('hanzi.txt',$font);
$fontcode=utf8_to_unicode2 ($font);
$fontcodes=explode('$u',$fontcode);
$fontcodes=array_flip ($fontcodes);
$svg=file_get_contents("$fontname/$fontname.svg");
$svgfilter=file_get_contents("$fontname/$fontname-shuzi.svg");
$svgfilter=str_replace(["</font>\r\n","</defs>\r\n","</svg>\r\n"],'',$svgfilter);
$svgfilter=trim($svgfilter);
foreach($fontcodes as $code=>$v){
if(preg_match('/]+>/',$svg,$matches)){
$svgfilter.=$matches[0]."\r\n";
}
}
$svgfilter.='</font>
</defs>
</svg>';
file_put_contents("$fontname/$fontname-filter.svg",$svgfilter);

