-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathbuild_font_subset.py
50 lines (44 loc) · 1.47 KB
/
build_font_subset.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
from pathlib import Path
from fontTools import subset
subset_dest = "composeApp/src/desktopAndWasmJsMain/composeResources/font"
basic_extra_text = "".join(map(chr,range(0x00,0x7f))) # 基本拉丁字母
res = {
"en": {
"strings": "composeApp/src/commonMain/composeResources/values/strings.xml",
"origin_fonts": [
"originFonts/NotoSansSC-Regular.ttf",
"originFonts/NotoSansSC-Bold.ttf"
],
"extra_text": basic_extra_text
},
"zh": {
"strings": "composeApp/src/commonMain/composeResources/values-zh/strings.xml",
"origin_fonts": [
"originFonts/NotoSansSC-Regular.ttf",
"originFonts/NotoSansSC-Bold.ttf"
],
"extra_text": basic_extra_text+"年月日"
},
"ja": {
"strings": "composeApp/src/commonMain/composeResources/values-ja/strings.xml",
"origin_fonts": [
"originFonts/NotoSansJP-Regular.ttf",
"originFonts/NotoSansJP-Bold.ttf"
],
"extra_text": basic_extra_text
},
}
for lang in res:
text = res[lang]["extra_text"]
with open(res[lang]["strings"], encoding="utf-8") as f:
text += f.read()
for font in res[lang]["origin_fonts"]:
font_name = Path(font).name
args = [
font,
"--text=" + text,
"--no-layout-closure",
f"--output-file={subset_dest}/{font_name}",
# "--flavor=woff2",
]
subset.main(args)