2 # -*- coding: utf-8 -*-
5 # Author: mshio <mshio@users.sourceforge.jp>
10 このスクリプトは、指定された漢字のうち、フォントファイルに含まれて
11 いない漢字を表示し、最後にその字数を表示するものです。
16 最初の引数には、検査対象のフォントファイル(TTF など)を指定します。
17 次の引数には、検査したい漢字を書き連ねたテキストファイル(便宜上これを
18 漢字ファイルと呼びます)のパスを指定します。
20 漢字ファイルは utf-8 で書かれている必要があります。
21 なお、漢字ファイルには改行を含めることができます。また、`#'から始まる
22 行はコメントとして扱われ、読み飛ばされます。
24 このスクリプトは、渡された漢字ファイルを読み取り、そのリストの中から、
25 フォントファイルに含まれていない漢字を抽出して出力します。
29 このスクリプトを実行するには、FontForge が必要です。
35 from types import MethodType
36 from fontparser import FontParser
37 from listprinter import SimpleListPrinter
40 def __init__(self, file_path):
41 self.file_path = file_path
44 def convert(self, line):
46 s = unicode(line.rstrip('\r\n'), 'utf-8')
48 sys.exit('[ERROR] %s' % line)
52 fh = open(self.file_path, 'r')
54 if line.startswith('#'):
56 for c in self.convert(line):
57 self.buffer.append(ord(c))
62 if __name__ == '__main__':
63 parser = FontParser(sys.argv[1])
64 kanji_list = KanjiList(sys.argv[2]).read()
66 def remove(self, char):
74 p = SimpleListPrinter(delimiter=0x3001)
77 print "%d char(s)" % len(kanji_list)