使用fontCarrier.create(options)
生成一个空白字体对像
- options是字体对象的构造参数,具体见下面的 font 对象部分
使用fontCarrier.transfer(path,options)
解析一个已有字体,支持svg,ttf的字体。
path
支持文件地址,也支持文件 buffer。options
是字体对象的构造参数,具体见下面的 font 对象部分
eg.
// 创建空白字体
var font = fontCarrier.create()
// 从其他字体解析
var transFont = fontCarrier.transfer('./test/test.ttf')
// same as
// var buffer = fs.readFileSync('./test/test.ttf')
// var transFont = fontCarrier.transfer(buffer)
一旦你拿到一个字体对象后,你可以选择导出它,默认会生成 svg,ttf,woff,woff2,eot 四种字体格式。
font.output(options)
- options.path 可选。导出的文件路径,不需要后缀
- options.types 可选。导出的字体类型默认是 ['ttf', 'eot', 'woff', woff2, 'svg'],忽略不支持的格式
返回一个对象,包含导出的所有字体的buffer
eg.
font.output({
path: './iconfont',
types: ['ttf'],
})
font-carrier 里面有三种对象 font,fontface,glyph。每个对象都有自己的构造参数包含一些初始化信息。所有的初始化参数后面都可以使用 get(key)
,set(key,value)
来进行简单的操作。
一个 font 对象就表示解析后的字体对象,包含字体所有的信息
构造参数包括:
- id: 字体的 postscript name,默认是 1024
- horizAdvX: 字体的水平画布大小,默认是 1024
- vertAdvY: 字体的垂直画布大小,默认是 1024
获取对应的 fontface 对象
返回一个 fontface 对象
设置对应的 fontface 对象
- options 可以是一个 fontface 对象也可以是 fontface 对象的构造参数
获取指定文字(keys)的 SVG。
- keys 可以是单个的字,也可以是多个字组成的字符串,也可以是数组。
如果是单个字就返回一个 SVG 字符串,否则返回一个 hash 对象,key 是 unicode,value 是对应的 SVG
用于针对字设置对应的 SVG 图形 有两种使用方式:
- font.setSvg(key,value) 用于设置单个
- key是对应的字,也可以是 unicode
- value是对应的svg图形
- font.setSvg({key,value}) 可用于设置多个
- key,value 同上,主要可以使用 object 的方式一次性设置多个
获取指定文字(keys)的 glyph 对象。
- keys 可以是单个的字,也可以是多个字组成的字符串,也可以是数组。
如果是单个字就返回一个 glyph 对象,否则返回一个 hash 对象,key 是 unicode,value 是对应的 glyph 对象
用于针对字设置对应的 glyph 对象 有两种使用方式:
- font.setGlyph(key,value) 用于设置单个
- key 是对应的字,也可以是 unicode
- value 是对应的 glyph 对象,或者是一个 glyph 的构造参数对象
- font.setGlyph({key,value}) 可用于设置多个
- key,value 同上,主要可以使用 object 的方式一次性设置多个
用于返回所有的字体对象集合
返回的是一个对象,key是 unicode,value 是对应的 glyph 对象
将当前字体解析成对应svg字体的字符串并返回
将当前字体的所有字形清空
精简当前字体
- input 是一个字符串,支持 unicode,会去掉 font 里面除 input 用到的字形之外所有的字形
返回精简后的字体对象
导出字体
- options.path 可选。导出的文件路径,不需要后缀
- options.types 可选。导出的字体类型默认是 ['ttf','eot','woff','svg']
返回一个对象,包含导出的所有字体的 buffer
fontface 对象包含了字体的一些特殊相关信息,参数如下:
- fontFamily: 字体的 fontfamily
- unitsPerEm: 字体的 unitsPerEm 默认是 1024
- ascent: 字体的上偏移量,默认是 812
- descent: 字体的下偏移量,默认是 -212
glyph 字形对象代表了具体某个字的信息。包括下面这些参数:
- unicode: 字体对应的 unicode,比如我对应的 unicode是
我
实际使用时直接使用我就行,内部会帮忙转换 - glyphName: 字体对应的名称,默认是 unicode(些许变化)
- d: 字体对应的序列,这个是具体的字体形状,不是是做了变化之后的,不建议直接使用这个
d
,建议使用 SVG 参数替代,内部会帮忙把 SVG 转换成对应的d
参数 - horizAdvX: 字体的水平画布大小,默认 1024
- vertAdvY: 字体的垂直画布大小,默认 1024
这边注意的是
d
这个参数是转化后的path序列,不建议在新建 glyph 对象的时候使用。建议使用 SVG 替代d
,内部会自动帮忙转换成对应的d
参数。
获取当前字形对应的字体对象
返回对应的字体对象
设置当前 glyph 的字体,会按照新的字体做一系列的变换
导出当前字形对象的 SVG
- path 导出的路径,可选
- options.width 导出的 SVG 的宽度
- options.height 导出的 SVG 的高度
返回对应的 SVG 字符串