-
Notifications
You must be signed in to change notification settings - Fork 5
/
generate_simsun.py
101 lines (80 loc) · 3.03 KB
/
generate_simsun.py
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
import fontforge as ff
import shutil as fs
import auto_configs as conf
def open_font(path):
return ff.open(path)
def remove_gasp(font):
font.gasp = ()
def set_cleartype(font):
font.head_optimized_for_cleartype = 1
def get_version(font):
return font.version.split(';')[0]
def set_simsun_names(font):
font.fontname = 'SimSun'
font.familyname = 'SimSun'
font.fullname = 'SimSun'
font.version = get_version(font)
font.copyright = conf.COPYRIGHT
font.sfnt_names = (
('English (US)', 'Copyright', conf.COPYRIGHT),
('English (US)', 'Family', 'SimSun'),
('English (US)', 'SubFamily', 'Regular'),
('English (US)', 'UniqueID', 'SimSun'),
('English (US)', 'Fullname', 'SimSun'),
('English (US)', 'Version', get_version(font)),
('English (US)', 'PostScriptName', 'SimSun'),
('Chinese (PRC)', 'Family', '宋体'),
('Chinese (PRC)', 'Fullname', '宋体')
)
def set_new_simsun_names(font):
font.fontname = 'NSimSun'
font.familyname = 'NSimSun'
font.fullname = 'NSimSun'
font.version = get_version(font)
font.copyright = conf.COPYRIGHT
font.sfnt_names = (
('English (US)', 'Copyright', conf.COPYRIGHT),
('English (US)', 'Family', 'NSimSun'),
('English (US)', 'SubFamily', 'Regular'),
('English (US)', 'UniqueID', 'NSimSun'),
('English (US)', 'Fullname', 'NSimSun'),
('English (US)', 'Version', get_version(font)),
('English (US)', 'PostScriptName', 'NSimSun'),
('Chinese (PRC)', 'Family', '新宋体'),
('Chinese (PRC)', 'Fullname', '新宋体')
)
def set_simsun_ext_names(font):
font.fontname = 'SimSun-ExtB'
font.familyname = 'SimSun-ExtB'
font.fullname = 'SimSun-ExtB'
font.version = get_version(font)
font.copyright = conf.COPYRIGHT
font.sfnt_names = (
('English (US)', 'Copyright', conf.COPYRIGHT),
('English (US)', 'Family', 'SimSun-ExtB'),
('English (US)', 'SubFamily', 'Regular'),
('English (US)', 'UniqueID', 'SimSun-ExtB'),
('English (US)', 'Fullname', 'SimSun-ExtB'),
('English (US)', 'Version', get_version(font)),
('English (US)', 'PostScriptName', 'SimSun-ExtB')
)
def gen_simsun_ttc():
fs.copy(conf.TEMP_DIR + '/' + conf.SIMSUN_SOURCE + '.ttf',
conf.TEMP_DIR + '/' + conf.SIMSUN_SOURCE + '-New.ttf')
font = open_font(conf.TEMP_DIR + '/' + conf.SIMSUN_SOURCE + '.ttf')
remove_gasp(font)
set_cleartype(font)
set_simsun_names(font)
font_ui = open_font(conf.TEMP_DIR + '/' +
conf.SIMSUN_SOURCE + '-New.ttf')
remove_gasp(font_ui)
set_cleartype(font_ui)
set_new_simsun_names(font_ui)
font.generateTtc(conf.TEMP_DIR + '/simsun.ttc',
font_ui, ttcflags=('merge'), layer=1)
def gen_simsun_ext():
font = open_font(conf.TEMP_DIR + '/' + conf.SIMSUN_SOURCE + '.ttf')
remove_gasp(font)
set_cleartype(font)
set_simsun_ext_names(font)
font.generate(conf.TEMP_DIR + '/simsunb.ttf')