-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathindex.js
55 lines (47 loc) · 987 Bytes
/
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
var fs = require('fs'),
p = require('./dist/plumin');
p.setup({
width: 1024,
height: 1024
});
var demo = p.Font({ familyName: 'Demo' }),
glyph_p = p.Glyph({
name: 'p',
unicode: 'p',
advanceWidth: 450
});
glyph_p.addContours([
p.Path.Rectangle({
point: [0, -255],
size: [100, 800]
}),
p.Path.Ellipse({
point: [50, 0],
size: [400, 550]
}),
p.Path.Ellipse({
point: [100, 100],
size: [250, 350]
}).reverse()
]);
demo.addGlyph(glyph_p)
.updateOTCommands();
// mkdir if not exist
fs.mkdir('.tmp', function(err) {
if ( err && err.code !== 'EEXIST' ) {
return console.log(err);
}
fs.open('.tmp/Demo.otf', 'w', function(err, fd) {
if (err) {
return console.log(err);
}
// ArrayBuffer to nodejs buffer
var buffer = new Buffer( new Uint8Array( demo[0].ot.toBuffer() ) );
fs.write(fd, buffer, 0, buffer.length, null, function(err) {
if (err) {
return console.log(err);
}
console.log('font saved to .tmp/Demo.otf');
});
});
});