示例#1
0
    def __init__(self, conf_file):
        """Create a font specification configuration from the specified file
        (file name or file-like object).
        """
        self.fontspecs = []
        self.fontnames = {}

        dom_document = xml.dom.minidom.parse(conf_file)
        for dom_fontspec in dom_document.getElementsByTagName('fontspec'):
            default = dom_fontspec.getAttribute('default')
            if default:
                print "has default"
                fallback = dom_fontspec.getAttribute('fallback')
                if fallback == "fontconfig":
                    self.default_fontspec = FcFallbackFontSpec()
                else:
                    self.default_fontspec = DefaultFontSpec()
                fontspec = self.default_fontspec
            else:
                fontspec = FontSpec()

            fontspec.fromnode(dom_fontspec)

            if fontspec != self.default_fontspec:
                self.fontspecs.append(fontspec)
            if fontspec.id:
                self.fontnames[fontspec.id] = fontspec

        dom_document.unlink()

        if not(self.default_fontspec):
            self.default_fontspec = DefaultFontSpec()

        self.build_tree()
示例#2
0
    def __init__(self, conf_file):
        """Create a font specification configuration from the specified file
        (file name or file-like object).
        """
        self.log = logging.getLogger("dblatex")
        self.fontspecs = []
        self.fontnames = {}

        dom_document = xml.dom.minidom.parse(conf_file)
        for dom_fontspec in dom_document.getElementsByTagName('fontspec'):
            default = dom_fontspec.getAttribute('default')
            if default:
                self.log.debug("has default")
                fallback = dom_fontspec.getAttribute('fallback')
                if fallback == "fontconfig":
                    self.default_fontspec = FcFallbackFontSpec()
                else:
                    self.default_fontspec = DefaultFontSpec()
                fontspec = self.default_fontspec
            else:
                fontspec = FontSpec()

            fontspec.fromnode(dom_fontspec)

            if fontspec != self.default_fontspec:
                self.fontspecs.append(fontspec)
            if fontspec.id:
                self.fontnames[fontspec.id] = fontspec

        dom_document.unlink()

        if not (self.default_fontspec):
            self.default_fontspec = DefaultFontSpec()

        self.build_tree()
示例#3
0
 def spawn_fontspec_from_fcfont(self, fcfont, char):
     print "New fontspec '%s' matching U%X from fontconfig" % (fcfont.family, ord(char))
     # Create a new font
     fontspec = FontSpec()
     fontspec.id = fcfont.family
     fontspec.transitions["enter"]["main"] = fcfont.family
     fontspec.add_char(char)
     # Register the font and its related fontconfig object
     self.fccache[fcfont.name] = fcfont
     self.add_subfont(fontspec)
     return fontspec
示例#4
0
 def spawn_fontspec_from_fcfonts(self, fcfonts, char):
     self.log.info("New fontspec '%s' matching U%X from fontconfig"\
           % (fcfonts["serif"].family, ord(char)))
     # Create a new font
     fontspec = FontSpec()
     fontspec.id = fcfont.family
     fontspec.transitions["enter"]["main"] = fcfonts["serif"].family
     fontspec.transitions["enter"]["sans"] = fcfonts["sans-serif"].family
     fontspec.transitions["enter"]["mono"] = fcfonts["monospace"].family
     fontspec.add_char(char)
     fontspec.add_ignored(self._ignored)
     # Register the font and its related fontconfig object
     for fcfont in fcfonts.values():
         self.fccache[fcfont.name] = fcfont
     self.add_subfont(fontspec)
     return fontspec
示例#5
0
 def __init__(self):
     FontSpec.__init__(self, subfont_first=True)
示例#6
0
 def __init__(self):
     FontSpec.__init__(self, subfont_first=True)