Я пытаюсь заново скомпилировать глиф-шрифт ttf на основе исходных svg-файлов.
Я использую python и FontForge и пытаюсь преобразовать SVG-форму в формат FontForge SplineSet
.Например, этот SVG-файл
Представлен в шрифте, сгенерированном FontForge, как этот SplineSet
формат
SplineSet
85 235 m 1,0,-1
85 85 l 1,1,-1
235 85 l 1,2,-1
235 43 l 1,3,-1
85 43 l 2,4,5
68 43 68 43 55.5 55.5 c 128,-1,6
43 68 43 68 43 85 c 2,7,-1
43 235 l 1,8,-1
85 235 l 1,0,-1
427 85 m 1,9,-1
427 235 l 1,10,-1
469 235 l 1,11,-1
469 85 l 2,12,13
469 68 469 68 456.5 55.5 c 128,-1,14
444 43 444 43 427 43 c 2,15,-1
277 43 l 1,16,-1
277 85 l 1,17,-1
427 85 l 1,9,-1
427 469 m 2,18,19
444 469 444 469 456.5 456.5 c 128,-1,20
469 444 469 444 469 427 c 2,21,-1
469 277 l 1,22,-1
427 277 l 1,23,-1
427 427 l 1,24,-1
277 427 l 1,25,-1
277 469 l 1,26,-1
427 469 l 2,18,19
363 331 m 128,-1,28
363 318 363 318 353.5 308.5 c 128,-1,29
344 299 344 299 331 299 c 128,-1,30
318 299 318 299 308.5 308.5 c 128,-1,31
299 318 299 318 299 331 c 128,-1,32
299 344 299 344 308.5 353.5 c 128,-1,33
318 363 318 363 331 363 c 128,-1,34
344 363 344 363 353.5 353.5 c 128,-1,27
363 344 363 344 363 331 c 128,-1,28
213 235 m 1,35,-1
277 156 l 1,36,-1
320 213 l 1,37,-1
384 128 l 1,38,-1
128 128 l 1,39,-1
213 235 l 1,35,-1
85 427 m 1,40,-1
85 277 l 1,41,-1
43 277 l 1,42,-1
43 427 l 2,43,44
43 444 43 444 55.5 456.5 c 128,-1,45
68 469 68 469 85 469 c 2,46,-1
235 469 l 1,47,-1
235 427 l 1,48,-1
85 427 l 1,40,-1
EndSplineSet
Я хочу создать функцию, которая получает SVG и выводит SplineSet
.
Это то, что я пробовал до сих пор (неэффективный, наивный способ создания временногошрифт, а затем очистить данные SplineSet
. Кстати, это очень неточно по сравнению с реальным шрифтом)
import fontforge
def main():
font = fontforge.font()
unicode_id = 57865
unicode_name = 'uni' + hex(unicode_id).upper()[2:]
char = font.createChar(unicode_id, unicode_name)
glyph = char.importOutlines('file.svg')
font.save('result.sfd')
Любые ссылки о том, как это сделать?