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 까지 줄어든다.


 더 이상 폰트 크기를 줄이기 위해서는 폰트 랜더링 정보를 지울경우 가능하다. 그 것에 대해서는 다음에 계속 테스트 하겠다.