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
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