diff options
Diffstat (limited to 'third_party/freetype-py/examples/ftdump.py')
-rw-r--r-- | third_party/freetype-py/examples/ftdump.py | 295 |
1 files changed, 0 insertions, 295 deletions
diff --git a/third_party/freetype-py/examples/ftdump.py b/third_party/freetype-py/examples/ftdump.py deleted file mode 100644 index 13662aa..0000000 --- a/third_party/freetype-py/examples/ftdump.py +++ /dev/null @@ -1,295 +0,0 @@ -#!/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 -import sys -from freetype import * - -verbose = 0 -debug = 0 -name_tables = 0 - -def usage( execname ): - print( ) - print( "ftdump: simple font dumper -- part of the FreeType project" ) - print( "----------------------------------------------------------" ) - print( "Usage: %s [options] fontname", execname ) - print( ) - print( " -n print SFNT name tables" ) - print( " -v be verbose" ) - print( ) - sys.exit() - - -def Print_Name( face ): - print( "font name entries" ); - print( " family: %s" % face.family_name ) - print( " style: %s" % face.style_name ) - ps_name = face.postscript_name or "UNAVAILABLE" - print( " postscript: %s" % ps_name ) - - -def Print_Type( face ): - - print( "font type entries" ) - - # module = &face->driver->root; - # printf( " FreeType driver: %s\n", module->clazz->module_name ); - - # Is it better to dump all sfnt tag names? - print( " sfnt wrapped: ",end="") - if face.is_sfnt: print( "yes") - else: print( "no") - - # is scalable ? - print( " type: ", end="") - if face.is_scalable: - print( "scalable, ", end="") - if face.has_multiple_masters: - print( "multiple_masters, ", end="") - if face.has_fixed_sizes: - print( "fixed size",end="") - print() - - # Direction - print( " direction: ", end="" ) - if face.has_horizontal: - print( "horizontal, ", end="") - if face.has_vertical: - print( "vertical", end="") - print( ) - - # Fixed width - print( " fixed width: ", end="") - if face.is_fixed_width: print( "yes") - else: print( "no") - - # Glyph names - print( " glyph names: ", end="") - if face.has_glyph_names: print( "yes") - else: print( "no") - - if face.is_scalable: - print( " EM size: %d" % face.units_per_EM ) - print( " global BBox: (%ld,%ld):(%ld,%ld)" % - (face.bbox.xMin, face.bbox.yMin, - face.bbox.xMax, face.bbox.yMax )) - print( " ascent: %d" % face.ascender ) - print( " descent: %d" % face.descender ) - print( " text height: %d" % face.height ) - - -def get_platform_id( platform_id ): - if platform_id == TT_PLATFORM_APPLE_UNICODE: - return "Apple (Unicode)" - elif platform_id == TT_PLATFORM_MACINTOSH: - return "Macintosh" - elif platform_id == TT_PLATFORM_ISO: - return "ISO (deprecated)" - elif platform_id == TT_PLATFORM_MICROSOFT: - return "Microsoft" - elif platform_id == TT_PLATFORM_CUSTOM: - return "custom" - elif platform_id == TT_PLATFORM_ADOBE: - return "Adobe" - else: - return "UNKNOWN" - -def get_name_id( name_id ): - if name_id == TT_NAME_ID_COPYRIGHT: - return "copyright" - elif name_id == TT_NAME_ID_FONT_FAMILY: - return "font family" - elif name_id == TT_NAME_ID_FONT_SUBFAMILY: - return "font subfamily" - elif name_id == TT_NAME_ID_UNIQUE_ID: - return "unique ID" - elif name_id == TT_NAME_ID_FULL_NAME: - return "full name" - elif name_id == TT_NAME_ID_VERSION_STRING: - return "version string" - elif name_id == TT_NAME_ID_PS_NAME: - return "PostScript name" - elif name_id == TT_NAME_ID_TRADEMARK: - return "trademark" - - # the following values are from the OpenType spec - elif name_id == TT_NAME_ID_MANUFACTURER: - return "manufacturer" - elif name_id == TT_NAME_ID_DESIGNER: - return "designer" - elif name_id == TT_NAME_ID_DESCRIPTION: - return "description" - elif name_id == TT_NAME_ID_VENDOR_URL: - return "vendor URL" - elif name_id == TT_NAME_ID_DESIGNER_URL: - return "designer URL" - elif name_id == TT_NAME_ID_LICENSE: - return "license" - elif name_id == TT_NAME_ID_LICENSE_URL: - return "license URL" - # number 15 is reserved - elif name_id == TT_NAME_ID_PREFERRED_FAMILY: - return "preferred family" - elif name_id == TT_NAME_ID_PREFERRED_SUBFAMILY: - return "preferred subfamily" - elif name_id == TT_NAME_ID_MAC_FULL_NAME: - return "Mac full name" - - # The following code is new as of 2000-01-21 - elif name_id == TT_NAME_ID_SAMPLE_TEXT: - return "sample text" - - # This is new in OpenType 1.3 - elif name_id == TT_NAME_ID_CID_FINDFONT_NAME: - return "CID 'findfont' name" - else: - return "UNKNOWN"; - - -def Print_Sfnt_Names( face ): - print( "font string entries" ); - - for i in range(face.sfnt_name_count): - - name = face.get_sfnt_name(i) - print( " %-15s [%s]" % ( get_name_id( name.name_id ), - get_platform_id( name.platform_id )),end="") - - if name.platform_id == TT_PLATFORM_APPLE_UNICODE: - if name.encoding_id in [TT_APPLE_ID_DEFAULT, - TT_APPLE_ID_UNICODE_1_1, - TT_APPLE_ID_ISO_10646, - TT_APPLE_ID_UNICODE_2_0]: - print(name.string.decode('utf-16be', 'ignore')) - else: - print( "{unsupported encoding %d}" % name.encoding_id ) - - elif name.platform_id == TT_PLATFORM_MACINTOSH: - if name.language_id != TT_MAC_LANGID_ENGLISH: - print( " (language=%d)" % name.language_id ) - print ( " : " ) - if name.encoding_id == TT_MAC_ID_ROMAN: - # FIXME: convert from MacRoman to ASCII/ISO8895-1/whatever - # (MacRoman is mostly like ISO8895-1 but there are differences) - print(name.string) - else: - print( "{unsupported encoding %d}" % name.encoding_id ) - - elif name.platform_id == TT_PLATFORM_ISO: - if name.encoding_id in [ TT_ISO_ID_7BIT_ASCII, - TT_ISO_ID_8859_1]: - print(name.string) - print ( " : " ) - if name.encoding_id == TT_ISO_ID_10646: - print(name.string.decode('utf-16be', 'ignore')) - else: - print( "{unsupported encoding %d}" % name.encoding_id ) - - elif name.platform_id == TT_PLATFORM_MICROSOFT: - if name.language_id != TT_MS_LANGID_ENGLISH_UNITED_STATES: - print( " (language=0x%04x)" % name.language_id ); - print( " : " ) - if name.encoding_id in [TT_MS_ID_SYMBOL_CS, - TT_MS_ID_UNICODE_CS]: - print(name.string.decode('utf-16be', 'ignore')) - else: - print( "{unsupported encoding %d}" % name.encoding_id ) - else: - print( "{unsupported platform}" ) - - print( ) - - -def Print_Fixed( face ): - - # num_fixed_size - print( "fixed size\n" ) - - # available size - for i,bsize in enumerate(face.available_sizes): - print( " %3d: height %d, width %d\n", - i, bsize.height, bsize.width ) - print( " size %.3f, x_ppem %.3f, y_ppem %.3f\n", - bsize.size / 64.0, - bsize.x_ppem / 64.0, bsize.y_ppem / 64.0 ) - - -def Print_Charmaps( face ): - global verbose - active = -1 - if face.charmap: - active = face.charmap.index - - # CharMaps - print( "charmaps" ) - for i,charmap in enumerate(face.charmaps): - print( " %d: platform %d, encoding %d, language %d" % - (i, charmap.platform_id, charmap.encoding_id, - int(charmap.cmap_language_id)), end="" ) - if i == active: - print( " (active)", end="" ) - print ( ) - if verbose: - face.set_charmap( charmap ) - charcode, gindex = face.get_first_char() - while ( gindex ): - print( " 0x%04lx => %d" % (charcode, gindex) ) - charcode, gindex = face.get_next_char( charcode, gindex ) - - - -# ----------------------------------------------------------------------------- -if __name__ == '__main__': - import getopt - execname = sys.argv[0] - - if len(sys.argv) < 2: - usage( execname ) - - try: - opts, args = getopt.getopt(sys.argv[1:], ':nv') - except getopt.GetoptError, err: - usage( execname ) - - verbose = False - name_tables = False - - for o, a in opts: - if o == "-v": verbose = True - elif o == "-n": name_tables = True - else: usage( execname ) - - - face = Face(args[0]) - num_faces = face.num_faces - - if num_faces > 1: - print( "There are %d faces in this file." % num_faces) - else: - print( "There is 1 face in this file.") - - for i in range(num_faces): - face = Face(args[0], i) - - print( "\n----- Face number: %d -----\n" % i ) - Print_Name( face ) - print( "" ) - Print_Type( face ) - print( " glyph count: %d" % face.num_glyphs ) - - if name_tables and face.is_sfnt: - print( ) - Print_Sfnt_Names( face ) - - if face.num_fixed_sizes: - print( ) - Print_Fixed( face ) - - if face.num_charmaps: - print( ) - Print_Charmaps( face ) |