summaryrefslogtreecommitdiff
path: root/third_party/freetype-py/examples/sfnt-names.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/freetype-py/examples/sfnt-names.py')
-rw-r--r--third_party/freetype-py/examples/sfnt-names.py66
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'))
+
+
+
+