Example #1
0
    def docinit(self, els):
        from openerp.reportlab.lib.fonts import addMapping
        from openerp.reportlab.pdfbase import pdfmetrics
        from openerp.reportlab.pdfbase.ttfonts import TTFont

        for node in els:
            for font in node.findall("registerFont"):
                name = font.get("fontName").encode("ascii")
                fname = font.get("fontFile").encode("ascii")
                if name not in pdfmetrics._fonts:
                    pdfmetrics.registerFont(TTFont(name, fname))
                addMapping(name, 0, 0, name)  # normal
                addMapping(name, 0, 1, name)  # italic
                addMapping(name, 1, 0, name)  # bold
                addMapping(name, 1, 1, name)  # italic and bold
Example #2
0
    def setTTFontMapping(self, face, fontname, filename, mode="all"):
        from openerp.reportlab.lib.fonts import addMapping
        from openerp.reportlab.pdfbase import pdfmetrics
        from openerp.reportlab.pdfbase.ttfonts import TTFont

        if fontname not in pdfmetrics._fonts:
            pdfmetrics.registerFont(TTFont(fontname, filename))
        if mode == "all":
            addMapping(face, 0, 0, fontname)  # normal
            addMapping(face, 0, 1, fontname)  # italic
            addMapping(face, 1, 0, fontname)  # bold
            addMapping(face, 1, 1, fontname)  # italic and bold
        elif (mode == "normal") or (mode == "regular"):
            addMapping(face, 0, 0, fontname)  # normal
        elif mode == "italic":
            addMapping(face, 0, 1, fontname)  # italic
        elif mode == "bold":
            addMapping(face, 1, 0, fontname)  # bold
        elif mode == "bolditalic":
            addMapping(face, 1, 1, fontname)  # italic and bold