- . h7 l& ?7 K( C" h- m; G
- import fontforge
8 g$ j6 K$ ~8 `% B( i; [; p( b3 m - import os
: w- h6 M$ s2 |& W4 H% x2 v3 ]5 D
# K- q7 S' D# F2 Z+ ]. C- # 创建新字体" P) g. x# [& t, c
- font = fontforge.font()
5 K. Y6 \- i7 a" v; a+ @1 { - + Y% o8 \6 R# W" u# I$ V
- # 指定SVG文件夹路径9 I" m4 N& k9 X5 K2 z& c7 u
- svg_folder = "path/to/your/svg/files"
0 H" _. W# G1 l, h$ ` - + d6 P& I# e; L0 }- m0 S
- # 获取所有SVG文件
U$ Q3 c8 f" ? L4 c, c - svg_files = [f for f in os.listdir(svg_folder) if f.endswith('.svg')]6 C* I1 s, @7 N
- 0 H0 |8 n2 V0 I; G
- # 按文件名排序
1 w& e3 _& U" ?' {3 R9 j: ? - svg_files.sort()
" v: Y* ~/ C5 Z5 P3 @ C
; e) N: c- F# o/ Z5 q- # 为每个SVG文件创建字形
8 v3 D9 N( \" b2 ~ - for i, filename in enumerate(svg_files):8 d7 p, Z* ~! \
- svg_path = os.path.join(svg_folder, filename). g+ t" a* ]. i- a H3 y
- 5 k& B/ B/ `! T+ q! T: i
- # 使用文件名作为字形名称
; r N, g% M0 N - glyph_name = os.path.splitext(filename)[0]- Q, y c4 _8 H" S
-
% q! b4 f' Y: ~ - # 创建字形(从U+1000开始的Unicode范围)
& k. B! L6 |" p8 @6 [, d - glyph = font.createChar(0x1000 + i, glyph_name)
' W# `: T- f: u r - 9 L5 u8 b, @' E8 e. x
- # 导入SVG轮廓
) c8 T" z4 \5 O4 o; t8 V - glyph.importOutlines(svg_path)
1 U0 R1 L Y6 R0 P% G v
8 D& w5 k- t; {7 h$ |- f8 V) v# J- # 保存字体文件& k6 V" w9 z$ Y7 S0 Q
- font.generate("output_font.ttf"); t0 r4 u! O/ [' m4 P& B' [( o3 m
- print(f"成功导入 {len(svg_files)} 个SVG文件到字体")
, m& Y0 |/ s, ^# B$ `- J8 k - O& s" h( E6 D1 G: ]/ {( Q* e
复制代码 / I4 @- ^6 m" y( I
& R, I6 [/ M) Q* W! K b/ Q参考 |