Esempio n. 1
0
    def generate_style(self):
        super(InvoiceBaseReport, self).generate_style()
        self.style.add(
            ParagraphStyle(name='Address',
                           parent=self.style['Normal'],
                           fontName=get_font(self.settings.font_name).bold,
                           fontSize=1.2 * self.settings.font_size,
                           leading=1.45 * self.settings.font_size))

        self.style.add(
            BaseTableStyle(name='InvoiceBaseReferencesTable',
                           parent=self.style['ReportTable'],
                           cmds=[
                               ('ALIGN', (-1, 0), (-1, -1), 'RIGHT'),
                               ('VALIGN', (0, 0), (-1, 0), 'BOTTOM'),
                               ('FONTSIZE', (0, 0), (0, 0),
                                1.5 * self.settings.font_size),
                               ('FONTSIZE', (-1, 0), (-1, 0),
                                1.2 * self.settings.font_size),
                               ('LEADING', (0, 0), (0, 0),
                                2 * self.settings.font_size),
                               ('LEADING', (-1, 0), (-1, 0),
                                1.5 * self.settings.font_size),
                               ('LEFTPADDING', (0, 0), (-1, -1), 0),
                               ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                           ]))

        self.style.add(
            BaseTableStyle(name='InvoiceBaseItemsTable',
                           parent=self.style['ReportTable'],
                           cmds=[
                               ('ALIGN', (1, 0), (-1, -1), 'RIGHT'),
                               ('TEXTCOLOR', (0, 0), (-1, 0),
                                self.settings.hex_font_base_color),
                               ('BACKGROUND', (0, 0), (-1, 0),
                                self.settings.hex_base_color),
                           ]))

        self.style.add(
            BaseTableStyle(name='InvoiceBaseSummaryTable',
                           parent=self.style['Table'],
                           cmds=[
                               ('FONTNAME', (0, -1), (-1, -1),
                                get_font(self.settings.font_name).bold),
                               ('FONTSIZE', (0, -1), (-1, -1),
                                1.2 * self.settings.font_size),
                               ('LEADING', (0, -1), (-1, -1),
                                1.5 * self.settings.font_size),
                               ('ALIGN', (0, 0), (-1, -1), 'RIGHT'),
                               ('TEXTCOLOR', (-2, -1), (-1, -1),
                                self.settings.hex_font_base_color),
                               ('BACKGROUND', (-1, 0), (-1, -1),
                                self.settings.hex_base_color.clone(alpha=0.1)),
                               ('BACKGROUND', (-2, -1), (-1, -1),
                                self.settings.hex_base_color),
                               ('LINEBELOW', (0, 0), (-1, -2), 4,
                                colors.white),
                               ('TOPPADDING', (0, 1), (-1, -1), 6),
                               ('BOTTOMPADDING', (0, 0), (-1, -2), 6),
                           ]))
Esempio n. 2
0
    def generate_style(self):
        super(InvoiceBaseReport, self).generate_style()
        self.style.add(ParagraphStyle(
            name='Address',
            parent=self.style['Normal'],
            fontName=get_font(self.settings.font_name).bold,
            fontSize=1.2 * self.settings.font_size,
            leading=1.45 * self.settings.font_size
        ))

        self.style.add(BaseTableStyle(
            name='InvoiceBaseReferencesTable',
            parent=self.style['ReportTable'],
            cmds=[
                ('ALIGN', (-1, 0), (-1, -1), 'RIGHT'),
                ('VALIGN', (0, 0), (-1, 0), 'BOTTOM'),
                ('FONTSIZE', (0, 0), (0, 0), 1.5 * self.settings.font_size),
                ('FONTSIZE', (-1, 0), (-1, 0), 1.2 * self.settings.font_size),
                ('LEADING', (0, 0), (0, 0), 2 * self.settings.font_size),
                ('LEADING', (-1, 0), (-1, 0), 1.5 * self.settings.font_size),
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
            ]
        ))

        self.style.add(BaseTableStyle(
            name='InvoiceBaseItemsTable',
            parent=self.style['ReportTable'],
            cmds=[
                ('ALIGN', (1, 0), (-1, -1), 'RIGHT'),
                ('TEXTCOLOR', (0, 0), (-1, 0), self.settings.hex_font_base_color),
                ('BACKGROUND', (0, 0), (-1, 0), self.settings.hex_base_color),
            ]
        ))

        self.style.add(BaseTableStyle(
            name='InvoiceBaseSummaryTable',
            parent=self.style['Table'],
            cmds=[
                ('FONTNAME', (0, -1), (-1, -1), get_font(self.settings.font_name).bold),
                ('FONTSIZE', (0, -1), (-1, -1), 1.2 * self.settings.font_size),
                ('LEADING', (0, -1), (-1, -1), 1.5 * self.settings.font_size),
                ('ALIGN', (0, 0), (-1, -1), 'RIGHT'),
                ('TEXTCOLOR', (-2, -1), (-1, -1), self.settings.hex_font_base_color),
                ('BACKGROUND', (-1, 0), (-1, -1), self.settings.hex_base_color.clone(alpha=0.1)),
                ('BACKGROUND', (-2, -1), (-1, -1), self.settings.hex_base_color),
                ('LINEBELOW', (0, 0), (-1, -2), 4, colors.white),
                ('TOPPADDING', (0, 1), (-1, -1), 6),
                ('BOTTOMPADDING', (0, 0), (-1, -2), 6),
            ]
        ))
Esempio n. 3
0
 def draw_addresses_labels(self, canvas, document):
     # Addresses labels
     canvas.saveState()
     canvas.setLineWidth(0.2)
     canvas.setLineCap(1)
     canvas.setStrokeColor(self.settings.hex_base_color)
     canvas.setFont(get_font(self.settings.font_name).regular, 9)
     canvas.setFillColor(self.settings.hex_base_color)
     canvas.line(
         self.settings.page_size.from_left(),
         self.settings.page_size.from_bottom(60 * mm),
         self.settings.page_size.from_left(
             self.settings.page_size.scaled_width(75 * mm)),
         self.settings.page_size.from_bottom(60 * mm))
     canvas.line(
         self.settings.page_size.from_left(
             self.settings.page_size.scaled_width(95 * mm)),
         self.settings.page_size.from_bottom(60 * mm),
         self.settings.page_size.from_left(
             self.settings.page_size.scaled_width(170 * mm)),
         self.settings.page_size.from_bottom(60 * mm))
     canvas.drawString(self.settings.page_size.from_left(),
                       self.settings.page_size.from_bottom(64 * mm),
                       _("Billing address").upper())
     canvas.drawString(
         self.settings.page_size.from_left(
             self.settings.page_size.scaled_width(95 * mm)),
         self.settings.page_size.from_bottom(64 * mm),
         _("Delivery address").upper())
     canvas.restoreState()
Esempio n. 4
0
 def draw_addresses_labels(self, canvas, document):
     # Addresses labels
     canvas.saveState()
     canvas.setLineWidth(0.2)
     canvas.setLineCap(1)
     canvas.setStrokeColor(self.settings.hex_base_color)
     canvas.setFont(get_font(self.settings.font_name).regular, 9)
     canvas.setFillColor(self.settings.hex_base_color)
     canvas.line(
         self.settings.page_size.from_left(),
         self.settings.page_size.from_bottom(60*mm),
         self.settings.page_size.from_left(self.settings.page_size.scaled_width(75*mm)),
         self.settings.page_size.from_bottom(60*mm)
     )
     canvas.line(
         self.settings.page_size.from_left(self.settings.page_size.scaled_width(95*mm)),
         self.settings.page_size.from_bottom(60*mm),
         self.settings.page_size.from_left(self.settings.page_size.scaled_width(170*mm)),
         self.settings.page_size.from_bottom(60*mm)
     )
     canvas.drawString(self.settings.page_size.from_left(), self.settings.page_size.from_bottom(64*mm), _("Billing address").upper())
     canvas.drawString(self.settings.page_size.from_left(self.settings.page_size.scaled_width(95*mm)), self.settings.page_size.from_bottom(64*mm), _("Delivery address").upper())
     canvas.restoreState()
Esempio n. 5
0
    def generate_style(self):
        self.style = StyleSheet1()

        self.style.add(ParagraphStyle(name='Normal',
                                      fontName=get_font(
                                          self.settings.font_name).regular,
                                      fontSize=self.settings.font_size,
                                      textColor=self.settings.hex_font_color,
                                      leading=1.2 * self.settings.font_size),
                       alias='p')

        self.style.add(
            ParagraphStyle(name='BodyText',
                           parent=self.style['Normal'],
                           spaceBefore=6))

        self.style.add(
            ParagraphStyle(name='Italic',
                           parent=self.style['BodyText'],
                           fontName=get_font(self.settings.font_name).italic))

        self.style.add(
            ParagraphStyle(name='Bold',
                           parent=self.style['BodyText'],
                           fontName=get_font(self.settings.font_name).bold))

        self.style.add(ParagraphStyle(name='Heading1',
                                      parent=self.style['Normal'],
                                      fontName=get_font(
                                          self.settings.font_name).bold,
                                      fontSize=1.5 * self.settings.font_size,
                                      leading=2 * self.settings.font_size,
                                      spaceAfter=6),
                       alias='h1')

        self.style.add(ParagraphStyle(name='Heading2',
                                      parent=self.style['Normal'],
                                      fontName=get_font(
                                          self.settings.font_name).bold,
                                      fontSize=1.25 * self.settings.font_size,
                                      leading=1.75 * self.settings.font_size,
                                      spaceBefore=12,
                                      spaceAfter=6),
                       alias='h2')

        self.style.add(
            ParagraphStyle(
                name='Small',
                parent=self.style['Normal'],
                fontSize=0.9 * self.settings.font_size,
                leading=1 * self.settings.font_size,
            ))

        self.style.add(
            ParagraphStyle(
                name='Smaller',
                parent=self.style['Normal'],
                fontSize=0.75 * self.settings.font_size,
                leading=0.9 * self.settings.font_size,
            ))

        self.style.add(
            ParagraphStyle(name='PageNumbering',
                           parent=self.style['Smaller'],
                           alignment=TA_RIGHT))

        self.style.add(
            BaseTableStyle(name='Table',
                           cmds=[
                               ('FONTNAME', (0, 0), (-1, -1),
                                get_font(self.settings.font_name).regular),
                               ('FONTSIZE', (0, 0), (-1, -1),
                                self.settings.font_size),
                               ('LEADING', (0, 0), (-1, -1),
                                1.2 * self.settings.font_size),
                               ('TEXTCOLOR', (0, 0), (-1, -1),
                                self.settings.hex_font_color),
                               ('TOPPADDING', (0, 0), (-1, -1), 4),
                               ('BOTTOMPADDING', (0, 0), (-1, -1), 4),
                               ('VALIGN', (0, 0), (-1, -1), 'TOP'),
                           ]))

        self.style.add(
            BaseTableStyle(name='LayoutTable',
                           parent=self.style['Table'],
                           cmds=[
                               ('TOPPADDING', (0, 0), (-1, -1), 0),
                               ('LEFTPADDING', (0, 0), (-1, -1), 0),
                               ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                               ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                           ]))

        self.style.add(
            BaseTableStyle(
                name='ReportTable',
                parent=self.style['Table'],
                cmds=[
                    ('FONTNAME', (0, 0), (-1, 0),
                     get_font(self.settings.font_name).bold),
                    ('FONTSIZE', (0, 0), (-1, 0),
                     1.1 * self.settings.font_size),
                    ('LEADING', (0, 0), (-1, 0),
                     1.4 * self.settings.font_size),
                    ('ROWBACKGROUNDS', (0, 1), (-1, -1),
                     (colors.transparent,
                      self.settings.hex_base_color.clone(alpha=0.1))),
                ]))

        # For monetary lists
        self.style.add(
            ParagraphStyle(
                name='Monospaced',
                parent=self.style['Normal'],
                fontName=
                'Courier',  # MUST change to a font closest to the base one
            ))
Esempio n. 6
0
    def generate_style(self):
        self.style = StyleSheet1()

        self.style.add(ParagraphStyle(
            name='Normal',
            fontName=get_font(self.settings.font_name).regular,
            fontSize=self.settings.font_size,
            textColor=self.settings.hex_font_color,
            leading=1.2 * self.settings.font_size
        ), alias='p')

        self.style.add(ParagraphStyle(
            name='BodyText',
            parent=self.style['Normal'],
            spaceBefore=6
        ))

        self.style.add(ParagraphStyle(
            name='Italic',
            parent=self.style['BodyText'],
            fontName=get_font(self.settings.font_name).italic
        ))

        self.style.add(ParagraphStyle(
            name='Bold',
            parent=self.style['BodyText'],
            fontName=get_font(self.settings.font_name).bold
        ))

        self.style.add(ParagraphStyle(
            name='Heading1',
            parent=self.style['Normal'],
            fontName=get_font(self.settings.font_name).bold,
            fontSize=1.5 * self.settings.font_size,
            leading=2 * self.settings.font_size,
            spaceAfter=6
        ), alias='h1')

        self.style.add(ParagraphStyle(
            name='Heading2',
            parent=self.style['Normal'],
            fontName=get_font(self.settings.font_name).bold,
            fontSize=1.25 * self.settings.font_size,
            leading=1.75 * self.settings.font_size,
            spaceBefore=12,
            spaceAfter=6
        ), alias='h2')

        self.style.add(ParagraphStyle(
            name='Small',
            parent=self.style['Normal'],
            fontSize=0.9 * self.settings.font_size,
            leading=1 * self.settings.font_size,
        ))

        self.style.add(ParagraphStyle(
            name='Smaller',
            parent=self.style['Normal'],
            fontSize=0.75 * self.settings.font_size,
            leading=0.9 * self.settings.font_size,
        ))

        self.style.add(ParagraphStyle(
            name='PageNumbering',
            parent=self.style['Smaller'],
            alignment=TA_RIGHT
        ))

        self.style.add(BaseTableStyle(
            name='Table',
            cmds=[
                ('FONTNAME', (0, 0), (-1, -1), get_font(self.settings.font_name).regular),
                ('FONTSIZE', (0, 0), (-1, -1), self.settings.font_size),
                ('LEADING', (0, 0), (-1, -1), 1.2 * self.settings.font_size),
                ('TEXTCOLOR', (0, 0), (-1, -1), self.settings.hex_font_color),
                ('TOPPADDING', (0, 0), (-1, -1), 4),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 4),
                ('VALIGN', (0, 0), (-1, -1), 'TOP'),
            ]
        ))

        self.style.add(BaseTableStyle(
            name='LayoutTable',
            parent=self.style['Table'],
            cmds=[
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
            ]
        ))

        self.style.add(BaseTableStyle(
            name='ReportTable',
            parent=self.style['Table'],
            cmds=[
                ('FONTNAME', (0, 0), (-1, 0), get_font(self.settings.font_name).bold),
                ('FONTSIZE', (0, 0), (-1, 0), 1.1 * self.settings.font_size),
                ('LEADING', (0, 0), (-1, 0), 1.4 * self.settings.font_size),
                ('ROWBACKGROUNDS', (0, 1), (-1, -1), (colors.transparent, self.settings.hex_base_color.clone(alpha=0.1))),
            ]
        ))

        # For monetary lists
        self.style.add(ParagraphStyle(
            name='Monospaced',
            parent=self.style['Normal'],
            fontName='Courier',  # MUST change to a font closest to the base one
        ))