4 F' Q! {( s( y- import fontforge0 ]9 \, l% y4 r+ K% V
- import os+ N/ q# }9 b% o. Q
- 0 L: n; a' a4 ]
- # 创建新字体2 L- r8 O* f" I9 H# p
- font = fontforge.font()
9 J; d/ e3 K% ~* _
1 D% f9 A. Q. }2 c1 G& e) E5 E- # 指定SVG文件夹路径$ A! c7 w0 y! N9 G o, R% g- J
- svg_folder = "path/to/your/svg/files"
) w' C) e2 s! Y% Y - ) |" l% N( Y* _( ~% _; p
- # 获取所有SVG文件
) |& j/ h9 ^# h: n% M" I - svg_files = [f for f in os.listdir(svg_folder) if f.endswith('.svg')]/ t+ J1 G8 R6 V4 F9 q6 m& `
4 \* E6 i& W( M- # 按文件名排序5 q! k4 w0 m& B
- svg_files.sort()
& p9 r/ ~0 T* n3 ]. w- ~ - : D, Z( @: ~3 ?) I" y/ y
- # 为每个SVG文件创建字形) q9 `$ J1 E8 T2 t" t/ E3 ^
- for i, filename in enumerate(svg_files):
% j: M7 a. _- `5 F/ L - svg_path = os.path.join(svg_folder, filename)
/ I1 N3 Z+ U- B0 j - ) y' m0 b3 v* X# X, m0 h
- # 使用文件名作为字形名称$ j$ l" J5 Z! J( m- G# L
- glyph_name = os.path.splitext(filename)[0]
; y1 W/ y0 C2 ^' d" z9 P' @, Z -
! E2 T' G/ Z" U6 m& C' R, y j - # 创建字形(从U+1000开始的Unicode范围): }( Z- ?8 W7 _
- glyph = font.createChar(0x1000 + i, glyph_name)1 n- f: R! l }8 i0 b9 T0 @
-
9 T! X5 u: G% ]7 c' m - # 导入SVG轮廓
5 |5 L; v) Z: k. k - glyph.importOutlines(svg_path)2 k" V5 n2 i9 h* e: D9 W
- + }9 T3 Y# ?9 R/ b5 _# ?. G. |: U
- # 保存字体文件
' L# A8 V# m' Y; B/ G7 X, ? - font.generate("output_font.ttf")& o6 W' S* r' J) M
- print(f"成功导入 {len(svg_files)} 个SVG文件到字体")( H( p/ s2 I) E1 r1 R/ R, X! Y
' C9 [: J# c$ G+ a* X+ G
复制代码 7 D. V9 j9 n+ L0 j. Y
) k$ m# {0 W4 c |0 U
参考 |