Esempio n. 1
0
def get_font(d, font_paths, font_key="fontName", size_key="fontSize"):
    if font_key in d:
        font_name = d[font_key]
        resolved = False
        try:
            getTypeFace(font_name)
            resolved = True
            
        except:
            if font_paths is not None:
                for path in font_paths:
                    try:
                        registerFont(TTFont(font_name, os.path.join(path, "{0}.ttf".format(font_name))))
                        resolved = True
                        break
                    except:
                        pass
        
        if not resolved:
            raise Exception("Could not locate font {0}".format(font_name))
    
    else:
        font_name = shapes.STATE_DEFAULTS["fontName"]
    
    font_size = d.get(size_key, shapes.STATE_DEFAULTS["fontSize"])
    return (font_name, font_size)
Esempio n. 2
0
def _patch_font(self, svgAttr):
    font_mapping = {'sans-serif': 'Helvetica',
                    'serif': 'Times-Roman',
                    'monospace': 'Courier'}

    font_name = font_mapping.get(svgAttr, svgAttr)

    from reportlab.pdfbase.pdfmetrics import getTypeFace

    try:
        getTypeFace(font_name)
    except KeyError:
        font_name = 'Helvetica'

    return font_name
Esempio n. 3
0
    def _set_font( me):
        from reportlab.pdfbase.pdfmetrics import getFont

        from fonts import ff
        fonts = ff.getFontsWithAttributes( name=me._fontname)
        params = [ me._fontname, me._fontsize ]
        if fonts:
            #print 'FOUND IT', fonts
            f = fonts[0]
            params += [ f.isBold, f.isItalic ]
        else:
            from reportlab.pdfbase.pdfmetrics import getTypeFace
            try:
                f = getTypeFace( me._fontname)
            except KeyError: pass
            else:
                params += [ f.bold, f.italic ]
        me.context.SetFont( *params)