Example #1
0
    def get_char_map(self):
        space = self.font_tree.findall("space/char/ln")
        spc_cur = []

        for line in space:
            spc_cur.append(line.text)

        self.characters["char_ "] = spc_cur
        
        if self.uppercase:
            uppercase_map = self.font_tree.findall("upper/char")
            for char_map in uppercase_map:
                char_id = text_parser._str_from_list(list(char_map.iter("char_id")))
                char_lns = list(char_map.iter("ln"))
                char_cur = []

                for line in char_lns:
                    char_cur.append(line.text)

                self.characters[char_id] = char_cur

        if self.lowercase:
            lowercase_map = self.font_tree.findall("lower/char")
            for char_map in lowercase_map:
                char_id = text_parser._str_from_list(list(char_map.iter("char_id")))
                char_lns = list(char_map.iter("ln"))
                char_cur = []

                for line in char_lns:
                    char_cur.append(line.text)

                self.characters[char_id] = char_cur

        if self.numbers:
            numbers_map = self.font_tree.findall("nums/char")
            for char_map in numbers_map:
                char_id = text_parser._str_from_list(list(char_map.iter("char_id")))
                char_lns = list(char_map.iter("ln"))
                char_cur = []

                for line in char_lns:
                    char_cur.append(line.text)

                self.characters[char_id] = char_cur

        if self.specials:
            specials_map = self.font_tree.findall("spec/char")
            for char_map in specials_map:
                char_id = text_parser._str_from_list(list(char_map.iter("char_id")))
                char_lns = list(char_map.iter("ln"))
                char_cur = []

                for line in char_lns:
                    char_cur.append(line.text)

                self.characters[char_id] = char_cur
Example #2
0
    def get_info(self):
        info = self.font_tree.find("info")

        #getting max number of lines making up a character
        line_info = list(info.iter("lines"))
        line_info_s = text_parser._str_from_list(line_info)
        self.line_info = int(line_info_s)

        #getting if there are uppercase characters
        upper_info = list(info.iter("uppercase"))
        self.uppercase = text_parser._is_str_true(upper_info)

        #getting if there are lowercase characters
        lower_info = list(info.iter("lowercase"))
        self.lowercase = text_parser._is_str_true(lower_info)

        #getting if there are numerical characters
        numbr_info = list(info.iter("numbers"))
        self.numbers = text_parser._is_str_true(numbr_info)

        #getting if there are special characters
        specs_info = list(info.iter("specials"))
        self.specials = text_parser._is_str_true(specs_info)
Example #3
0
from xml.etree.ElementTree import ElementTree
import text_parser
import os

BUILTINS = {}

abs_path = os.path.abspath(__file__)
abs_path = abs_path.strip("fancyf.py")

builtin_tree = ElementTree()
builtin_tree.parse(abs_path + "BUILTIN_FONTS.xml")
b_fonts = builtin_tree.findall("font")
for child in b_fonts:
    b_font_name_l = list(child.iter("name"))
    b_font_name = text_parser._str_from_list(b_font_name_l)

    b_font_file_l = list(child.iter("file"))
    b_font_file = abs_path + text_parser._str_from_list(b_font_file_l)

    BUILTINS[b_font_name] = b_font_file

class fancy_font:
    def __init__(self, font_name):
        self.font_name = font_name
        self.font_file = BUILTINS[font_name]
        self.font_tree = ElementTree()
        self.font_tree.parse(self.font_file)
        
        self.line_info = 0
        self.uppercase = False