NanumGothicHang.ttf
NanumGothicHang.woff
NanumGothicHang2.ttf
NanumGothicHang2.woff
기존 나눔고딕 폰트를 웹폰트로 사용하기에는 좀 파일이 크다는 단점이 있다. 한글이외의 다른 글자(이를테면 한자)를 빼면 파일을 줄일 수 있다고 생각되어어서 이 부분을 빼는 방법을 찾았다. Fontforge에 embeded 한 Python 을 이용해서 불필요하다고 생각하는 부분을 제거할 수 있다.
Character 에 대해 어떤 언어인지 분석하기 위해서는 https://gist.github.com/anonymous/2204527 를 이용한다. 이를 이용해서 불필요한 언어의 폰트라고 생각하면 지워 버릴 수 있다.
아래는 그 예제이다.
사용하는 유니코드 스크립트는 Common, Latin, Hangul 만 선택했다. Common 때문에 의외로 좀 불필요한 글자가 더 들어가는 느낌이 든다.
이렇게 해서 TTF 폰트 기준으로 4.14MB 가 2.33MB로 줄어 들었다. woff 파일 기준으로는
2.35MB에서 1.01MB로 줄어들었다.
#-*- coding: utf-8 -*-
import traceback
import fontforge;
import unicodedata2
def filtering_hang():
try:
print "== Open File =="
font = fontforge.open("NanumGothic.ttf")
for index in font :
item = font[index]
if item.unicode == -1:
continue
ch = unichr( item.encoding )
if unicodedata2.script( ch ) in ( 'Common', 'Latin', 'Hangul' ) :
continue
font.removeGlyph( item )
flags = ("opentype", "apple")
font.generate("NanumGothicHang.ttf", flags=flags )
font.generate("NanumGothicHang.woff", flags=flags )
print "== Close File =="
except Exception as e:
print traceback.format_exc()
return font
if __name__ == "__main__":
print "======== FF Start ========"
filtering_hang()
print "======== FF END ========"
여기서 한 번 더 파일 크기를 줄일 수 있는데 이 폰트들을 Fontforge 에서 열어 File->Generate Fonts... 에서 저장시 뜨는 Generate Fonts 창에서 Options 버튼을 누르면 폰트 생성시 저장되는 정보를 선택할 수 있다. 이 화면에서 PS Glyph Name 부분을 체크 해제 해주고 저장하면 폰트크기를 더 줄일 수 있다. (물론 Truetype Hints 부분을 선택하면 파일 크기가 더 줄어 들기는 한다. 그런데 이 경우 폰트의 질이 떨어질 수 있다. )
이 경우 폰트 새로운 ttf 파일은 2.18MB, woff 파일은 976KB 까지 줄어든다.
더 이상 폰트 크기를 줄이기 위해서는 폰트 랜더링 정보를 지울경우 가능하다. 그 것에 대해서는 다음에 계속 테스트 하겠다.