(no subject)

May 30, 2014 19:06

Минимально возможный вариант кастомной flowlable для reportlabа:
class Price_std(Flowable):

def __init__(self,price_rub,price_kop,items = 1):
        Flowable.__init__(self)
        self.price_rub = price_rub
        self.price_kop = price_kop
        self.items = str(items) + ' .шт'
        self.rub_font = 'HelveticaNeue-Bold'
        self.rub_font_size = 28
        self.kop_font = 'HelveticaNeue-Bold'
        self.kop_font_size = 15
        self.items_font = 'HelveticaNeue-BoldCd'
        self.items_font_size = 5

def draw(self):
        self.canv.setFont(self.rub_font,self.rub_font_size)
        self.canv.setFillColor(CMYKColor(0,100,90,15))
        self.canv.drawString(0, 0,self.price_rub)
        rubWidth = stringWidth(self.price_rub, self.rub_font, self.rub_font_size)
        splitterWidth = stringWidth(',',self.rub_font, self.rub_font_size)
        self.canv.drawString(rubWidth, 4,',')
        self.canv.setFont(self.kop_font,self.kop_font_size)
        self.canv.drawString(rubWidth,10,self.price_kop)
        self.canv.setFont(self.items_font,self.items_font_size)
        self.canv.setFillColor(colors.black)
        self.canv.drawString(rubWidth+splitterWidth,4,self.items)

reportlab, rtfm, python

Previous post Next post
Up