-
Notifications
You must be signed in to change notification settings - Fork 196
/
Copy pathindex.js
103 lines (78 loc) · 2.46 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
var fs = require('fs')
//测试新建字体
var fontCarrier = require('../lib/index.js')
var fontEngine = require('../lib/helper/engine')
var circle = fs.readFileSync('./test/svgs/circle.svg').toString()
var love = fs.readFileSync('./test/svgs/love.svg').toString()
var mail = fs.readFileSync('./test/svgs/mail.svg').toString()
var clock = fs.readFileSync('./test/svgs/clock.svg').toString()
var ttfFont = fs.readFileSync('./test/color-font.ttf')
var arrowUpFont = fs.readFileSync('./test/svg-fonts/arrow-up.svg')
// 彩色字体(COLRv0)转换为其他格式
fontEngine.convert({
input: ttfFont,
inputTypes: 'ttf',
path: './test/font-out/color-font-out',
types: ['woff', 'woff2', 'ttf', 'foo'], // Ignore unrecognized format foo
})
// SVG 字体格式转换为 ttf
fontEngine.convert({
input: arrowUpFont,
inputTypes: 'svg',
path: './test/font-out/arrow-up',
types: ['ttf'],
})
// 创建空白字体,使用 SVG 生成字体
var font = fontCarrier.create()
font.setGlyph('爱',{
svg:love,
glyphName:'爱'
})
font.setGlyph('钟',{
svg: clock,
glyphName: '爱'
})
font.setSvg('',circle)
font.setSvg('',mail)
//console.log(font.toString())
font.output({
path: './test/font-out/font1',
types: ['ttf'],
})
console.log('由于需要读取转换2m的方正字体,所以会很慢。。。')
//测试从其他字体获取字形
var transFont = fontCarrier.transfer('./test/test.ttf')
var a = transFont.getGlyph(',')
font.setGlyph('哈',a)
console.log('开始解析方正字体。。。')
var transFont2 = fontCarrier.transfer('./test/fz.ttf')
console.log('解析结束,实际使用中一般不会解析这么大的字体库。。。')
//测试对象set
var gs = transFont2.getGlyph('我是方正')
font.setGlyph(gs)
console.log('开始解析苹方字体。。。')
var transFont3 = fontCarrier.transfer('./test/PingFangSC.ttf')
//测试对象set
var gs3 = transFont3.getGlyph('人之初,性本善')
font.setGlyph(gs3)
font.output({
path: './test/font-out/font2'
})
//测试精简字体
transFont2.min('我是精简后的字体,我可以重复,我的x被覆盖了。')
transFont2.output({
path: './test/font-out/font3'
})
//直接output
transFont2.output()
//导出字形
//var g = font.getGlyph('我')
//g.toSvg('./test/export.svg')
var path = font.getSvg('我',{
skipViewport:true
})
fs.writeFileSync('./test/export.svg',path)
var path2 = font.getSvg('爱',{
skipViewport:true
})
fs.writeFileSync('./test/export2.svg',path2)