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);