diff options
Diffstat (limited to 'third_party/freetype-py/examples/sfnt-names.py')
-rw-r--r-- | third_party/freetype-py/examples/sfnt-names.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/third_party/freetype-py/examples/sfnt-names.py b/third_party/freetype-py/examples/sfnt-names.py new file mode 100644 index 0000000..ffebc00 --- /dev/null +++ b/third_party/freetype-py/examples/sfnt-names.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# FreeType high-level python API - Copyright 2011 Nicolas P. Rougier +# Distributed under the terms of the new BSD license. +# ----------------------------------------------------------------------------- +from __future__ import print_function +from __future__ import division +from freetype import * + +def platform_name(platform_id): + for key, value in TT_PLATFORMS.items(): + if value == platform_id: + return key + return 'Unknown platform' + +def encoding_name(platform_id, encoding_id): + if platform_id == TT_PLATFORM_APPLE_UNICODE: + encodings = TT_APPLE_IDS + elif platform_id == TT_PLATFORM_MACINTOSH: + encodings = TT_MAC_IDS + elif platform_id == TT_PLATFORM_MICROSOFT: + encodings = TT_MS_IDS + elif platform_id == TT_PLATFORM_ADOBE: + encodings = TT_ADOBE_IDS + else: + return 'Unknown encoding' + for key, value in encodings.items(): + if value == encoding_id: + return key + return 'Unknown encoding' + +def language_name(platform_id, language_id): + if platform_id == TT_PLATFORM_MACINTOSH: + languages = TT_MAC_LANGIDS + elif platform_id == TT_PLATFORM_MICROSOFT: + languages = TT_MS_LANGIDS + else: + return 'Unknown language' + for key, value in languages.items(): + if value == language_id: + return key + return 'Unknown language' + + +if __name__ == '__main__': + import os, sys + + if len(sys.argv) < 2: + print("Usage: %s font_filename" % sys.argv[0]) + sys.exit() + face = Face(sys.argv[1]) + + name = face.get_sfnt_name(0) + print( 'platform_id:', platform_name(name.platform_id) ) + print( 'encoding_id:', encoding_name(name.platform_id, + name.encoding_id) ) + print( 'language_id:', language_name(name.platform_id, + name.language_id) ) + for i in range(face.sfnt_name_count): + name = face.get_sfnt_name(i).string + print(i, name.decode('utf-8', 'ignore')) + + + + |