2
저는 fontforge Python 라이브러리/래퍼를 사용하여 실험 중이며 여러 문자 대체가 작동하지 않는 것 같습니다. 어쩌면 당신은 친구들과 내가 잘못한 것을 지적 할 수 있습니까?FontForge Python 확장 : 작동하도록 gsub_multiple 검색을 할 수 없습니다.
기본적으로 "ABC"를 "a"의 문자 표현으로 대체하려고 시도하고 있지만, 일단 이것이 작동하면 적절한 하위 집합으로이를 확장하려고합니다.
from random import randint
from datetime import datetime
def add_pixel(pen, x, y, scale = 100):
pen.moveTo(((x + 0) * scale, (y + 0) * scale))
pen.lineTo(((x + 0) * scale, (y + 1) * scale))
pen.lineTo(((x + 1) * scale, (y + 1) * scale))
pen.lineTo(((x + 1) * scale, (y + 0) * scale))
pen.closePath()
def add_character(font, code, name):
if not name in list(font):
font.createChar(code, name)
pen = font[code].glyphPen()
for i in range(1, 15):
add_pixel(pen, randint(0, 15), randint(0, 15), 100 * 10/15)
try:
import fontforge
except Exception, e:
raise
else:
font = fontforge.font()
font.familyname = "font"
font.fontname = "font x15"
font.fullname = "font x15"
font.version = datetime.now().strftime("%Y-%m-%d %H:%M")
# lower
for c in range(0x61, 0x61 + 26):
add_character(font, c, unichr(c))
# upper
for c in range(0x41, 0x41 + 26):
add_character(font, c, unichr(c))
font.addLookup("gsub", "gsub_multiple",(), (("dlig",(("latn",("dflt")),)),))
font.addLookupSubtable("gsub", "gsub_n")
glyph = font["a"]
glyph.addPosSub("gsub_n", ("A", "B", "C"))
# font.save("font.x15.sfd")
font.generate("font.x15.otf", flags=("PfEd-lookups", "opentype"))
finally:
pass
. 두 번째는하지 않았지만 지금은 확장 할 수있는 작업 상태를 가지고 있다고 생각합니다. 감사! – user2996332
'subs'(subscript) 기능이 관련이 없으므로 두 번째 줄을 제거했습니다. 천만에요! – allcaps