当前位置: 首页>>代码示例>>Python>>正文


Python Table.drawOn方法代码示例

本文整理汇总了Python中reportlab.platypus.Table.drawOn方法的典型用法代码示例。如果您正苦于以下问题:Python Table.drawOn方法的具体用法?Python Table.drawOn怎么用?Python Table.drawOn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在reportlab.platypus.Table的用法示例。


在下文中一共展示了Table.drawOn方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: create_doc_details

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
def create_doc_details(c, table_header, table_body, table_footer):
    w, h = A4
    document_details = []

    c.setFont("Helvetica", 8)

    document_details.append(table_header)
    for detail in table_body:
        document_details.append (detail)
    document_details.append(table_footer)

    ts = [
            ('FONT', (0,0), (-1,-1), 'Times-Roman', 8),
            ('ALIGN', (1,1), (-1,-1), 'CENTER'),
            ('LINEABOVE', (0,0), (-1,0), 1, purple),
            ('LINEBELOW', (0,0), (-1,0), 1, purple),
            ('FONT', (0,0), (-1,0), 'Times-Bold', 6),
            ('LINEABOVE', (0,-1), (-1,-1), 1, purple),
            ('LINEBELOW', (0,-1), (-1,-1), 0.5, purple,1, None, None, 4,1),
            ('LINEBELOW', (0,-1), (-1,-1), 1, red),
            ('FONT', (0,-1), (-1,-1), 'Times-Bold'  ),
        ]
    table = Table(document_details, style=ts, colWidths=35)
    aW = w
    aH = h
    w1,h1 = table.wrap(aW, aH)# find required
    if w<=aW and h<=aH:
        table.drawOn(c, inch ,h - h1 - inch*2.5 )
    else:
        raise ValueError, "Not enough room"
开发者ID:mlouro,项目名称:django-viriato,代码行数:32,代码来源:pdf_gen.py

示例2: _posting_list_table

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
    def _posting_list_table(self, canvas, x1, y1, x2, y2, shipping_labels):
        style = self.table_style[:]
        table = [self.table_header]
        for i, shipping_label in enumerate(shipping_labels, start=1):
            row = (
                str(shipping_label.tracking_code),
                str(shipping_label.receiver.zip_code),
                str(shipping_label.package.posting_weight),
                self.yes if ExtraService.get(EXTRA_SERVICE_AR) in shipping_label else self.no,
                self.yes if ExtraService.get(EXTRA_SERVICE_MP) in shipping_label else self.no,
                self.yes if shipping_label.has_declared_value() else self.no,
                str(shipping_label.value).replace(".", ",") if shipping_label.value is not None else "",
                str(shipping_label.invoice_number),
                shipping_label.get_package_sequence(),
                shipping_label.receiver.name[:self.max_receiver_name_size],
            )

            # noinspection PyTypeChecker
            table.append(row)

            if i % 2:
                style.append(('BACKGROUND', (0, i), (-1, i), colors.lightgrey))

        table_flow = Table(
            table,
            colWidths=self.col_widths,
            style=TableStyle(style),
        )
        w, h = table_flow.wrap(0, 0)
        table_flow.drawOn(canvas, x1, y2 - h - 50 * mm)
开发者ID:solidarium,项目名称:correios,代码行数:32,代码来源:pdf.py

示例3: createDocument

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
    def createDocument(self, address, body, greetings):
        voffset = 120

        # create return address
        paragraph = Paragraph(address.nombre+"<br />"+address.direccion1+"<br />"+address.direccion2+"<br />"+address.direccion3+"<br />"+address.direccion4, self.styles["Normal"])
        header = [["",paragraph]]
        table = Table(header, colWidths=4*inch)
        table.setStyle([("VALIGN", (0,0), (0,0), "TOP")])
        table.wrapOn(self.c, self.width, self.height)
        table.drawOn(self.c, *self.coord(18, 60, mm))

        # insert body of letter
        print "bodyyy"
        print body
        body = body.replace('\n','<br />')
        p = Paragraph(body, self.styles["Normal"])
        p.wrapOn(self.c, self.width-70, self.height)
        p.drawOn(self.c, *self.coord(20, voffset+50, mm))

        # greetings
        try:
            p = Paragraph(greetings.nombre+"<br />"+greetings.direccion1+"<br />"+greetings.direccion2+"<br />"+greetings.direccion3+"<br />"+greetings.direccion4, self.styles["Normal"])
        except:
            p = Paragraph("", self.styles["Normal"])
        p.wrapOn(self.c, self.width-70, self.height)
        p.drawOn(self.c, *self.coord(20, voffset+75, mm))
开发者ID:pisapapiros,项目名称:apelantes,代码行数:28,代码来源:CreadorCartasApelantes.py

示例4: pdf

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
    def pdf(self):
        """
        Metodo pdf:
        Este metodo genera el pdf, y en el nombre
        le pone la fecha en la que es generado
        utilizamos canvas, y llamamos al metodo tabla
        para agregar la tabla al pdf
        """
        self.canvas = canvas.Canvas(self.historialpdf, pagesize=letter)
        titulos = [
            ["DNI", "NOMBRE", "APELLIDOS", "DIRECCION", "TELEFONO", "FNACIMIENTO"]]
        clientes = titulos + list(self.cursor.execute("select * from CLIENTE"))
        tabla = Table(clientes)

        estilo = TableStyle([('GRID', (0, 0), (-1, -1), 2, colors.white),
                             ('BACKGROUND', (0, 1), (-1, -1), colors.lightblue),
                             ('BACKGROUND', (0, 0), (-1, 0), colors.lightcoral)])
        tabla.setStyle(estilo)


        self.canvas.drawString(20, 800, "Impresion lista clientes")

        tabla.wrapOn(self.canvas, 20, 30)
        tabla.drawOn(self.canvas, 20, 600)
        self.canvas.save()

        self.popup("PDF Generado")
开发者ID:bhernandezsouto,项目名称:RapiCasa,代码行数:29,代码来源:PDF.py

示例5: draw_items

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
 def draw_items(self, invoice, canvas):
     # Items
     data = [[_('Quantity'), _('Description'), _('Amount'), _('Total')], ]
     for item in invoice.items.all():
         data.append([
             item.quantity,
             item.description,
             format_currency(item.unit_price),
             format_currency(item.total)
         ])
     data.append(
         [u'', u'', _('Total') + u":", format_currency(invoice.total)]
     )
     table = Table(data, colWidths=[1.7*cm, 11*cm, 2.5*cm, 2.5*cm])
     table.setStyle([
         ('FONT', (0, 0), (-1, -1), self.FONT_NAME),
         ('FONTSIZE', (0, 0), (-1, -1), 10),
         ('TEXTCOLOR', (0, 0), (-1, -1), (0.2, 0.2, 0.2)),
         ('GRID', (0, 0), (-1, -2), 1, (0.7, 0.7, 0.7)),
         ('GRID', (-2, -1), (-1, -1), 1, (0.7, 0.7, 0.7)),
         ('ALIGN', (-2, 0), (-1, -1), 'RIGHT'),
         ('BACKGROUND', (0, 0), (-1, 0), (0.8, 0.8, 0.8)),
     ])
     tw, th, = table.wrapOn(canvas, 15*cm, 19*cm)
     table.drawOn(canvas, 1.5*cm, self.baseline-th)
     self.baseline = -26*cm
开发者ID:vandorjw,项目名称:django-invoice,代码行数:28,代码来源:pdf.py

示例6: tradingReport

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
    def tradingReport(self, c):
        title = "DAILY TRADING" 
        c.setFont("Helvetica", 24)
        c.drawString(50,770, title)
        c.setFont("Helvetica", 16)
        c.drawString(50,730, "DATE :")
        c.drawString(110,730, str(today.year) + "/" + str(today.month) + "/" + str(today.day) ) # DATE
        c.line(110, 727, 185, 727)
        c.drawString(300,730, "Today's Performance :")
        c.line(465, 727, 515, 727)
        c.drawString(470,730, "4%")          # PROFIT value
        c.drawString(50,680, "Market Analysis")

        columHeight = [1*cm, 1*cm, 1*cm, 1*cm]
        t=Table(self._data, 2.5*cm, columHeight)             # The size of each cells
        t.setStyle(TableStyle([('GRID',(0,0),(-1,-1),1,colors.black),
                               ('VALIGN',(0,0),(-1,-1),'TOP')]))
                           
        t.wrapOn(c, 50,50)  
        t.drawOn(c, 50,550)     #Table Location

        c.drawString(50,500, "Intraday performance of Algorithm1")
        graph_1 = Image("example.png")
        graph_1.drawHeight = 6*cm
        graph_1.drawWidth = 17.5*cm
        #graph_1.wrapOn(c, 50,20)
        graph_1.drawOn(c,50,322)

        c.drawString(50,295, "Intraday performance of Algorithm2")
        graph_2 = Image("example2.png")
        graph_2.drawHeight = 6*cm
        graph_2.drawWidth = 17.5*cm
        #graph_2.wrapOn(c, 50,20)
        graph_2.drawOn(c,50,117)
开发者ID:kykk0010,项目名称:TradingSystem,代码行数:36,代码来源:dailyReport.py

示例7: writeVerdictPDF

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
   def writeVerdictPDF(self,school_name, filename, verdict):
       sorted_verdict = OrderedDict(sorted(verdict.items(), key=lambda t: t[0]))
       
       styles = getSampleStyleSheet()
       styleN = styles["BodyText"]
       styleN.alignment = TA_LEFT
       styleBH = styles["Normal"]
       styleBH.alignment = TA_CENTER
       
       data= [map(lambda (k,v): Paragraph(k, styleBH), sorted_verdict.iteritems()),
              map(lambda (k,v): Paragraph("<br/> ------------- <br/>".join(set(map(lambda (x): x.strip(), v[2]))), styleN), sorted_verdict.iteritems())]

       cwidth = 120
       table = Table(data, colWidths=[cwidth]*len(sorted_verdict))

       table.setStyle(TableStyle([
          ('INNERGRID', (0,0), (-1,-1), 0.25, black),
          ('BOX', (0,0), (-1,-1), 0.25, black),
          ('VALIGN',(0,0),(-1,-1),'TOP')
          ]))
          
       margin = 20
       w, h = table.wrap(0,0)
       pagewidth = w+margin*2
       pageheight = h+margin*3
       c = canvas.Canvas(filename, pagesize=(pagewidth,pageheight))
       
       table.drawOn(c, margin, pageheight - h - 2*margin)

       c.setFillColor(black) #choose your font colour
       c.drawString(margin,pageheight-margin,school_name)
       
       c.save()
开发者ID:schasins,项目名称:school-program-scraping,代码行数:35,代码来源:sfusd_demo.py

示例8: __budgets_spent

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
    def __budgets_spent(self):
        self.l = 800
        p = PageBreak()
        p.drawOn(self.c, 0, 1000)
        self.c.showPage()

        self.c.setFont('Courier', 14)
        self.c.drawString(30, self.l, 'Budgets')

        header = ['Nombre', 'Gastado', 'Balance', 'Limite']
        data = [header]

        for bud in self.budgets:
            data.append([bud.name, bud.spent,
                bud.balance, bud.limit])

        self.l -= len(data) * 19
        t = Table(data)
        t.setStyle(TableStyle([('INNERGRID', (0,0), (-1,-1), 0.25, black),
            ('BOX', (0,0), (-1,-1), 0.25, black),
            ('FONTNAME', (0,0), (-1,0), 'Courier-Bold'),
            ('BACKGROUND', (0,0), (-1,0), HexColor('#efeded')),
            ('BACKGROUND', (0,0), (0,-1), HexColor('#efeded')),
            ('FONTSIZE', (0,0), (-1,0), 12),
            ('FONTSIZE', (0,1), (-1,-1), 8),
            ('FONTNAME', (0,1), (-1,-1), 'Courier')]))
        t.wrapOn(self.c, 30, self.l)
        t.drawOn(self.c, 30, self.l)
开发者ID:gaccardo,项目名称:buxfer_api,代码行数:30,代码来源:reporter.py

示例9: __reminders

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
    def __reminders(self):
        self.l = 800
        p = PageBreak()
        p.drawOn(self.c, 0, 1000)
        self.c.showPage()

        self.c.setFont('Courier', 14)
        self.c.drawString(30, self.l, 'Recordatorio de pagos')

        header = ['Fecha', 'Descripcion', 'Monto']
        data = [header]

        for rem in self.reminders:
            data.append([rem.start_date, rem.description,
                rem.amount])

        self.l -= len(data) * 19
        t = Table(data)
        t.setStyle(TableStyle([('INNERGRID', (0,0), (-1,-1), 0.25, black),
            ('BOX', (0,0), (-1,-1), 0.25, black),
            ('FONTNAME', (0,0), (-1,0), 'Courier-Bold'),
            ('BACKGROUND', (0,0), (-1,0), HexColor('#efeded')),
            ('BACKGROUND', (0,0), (0,-1), HexColor('#efeded')),
            ('FONTSIZE', (0,0), (-1,0), 12),
            ('FONTSIZE', (0,1), (-1,-1), 8),
            ('FONTNAME', (0,1), (-1,-1), 'Courier')]))
        t.wrapOn(self.c, 30, self.l)
        t.drawOn(self.c, 30, self.l)
开发者ID:gaccardo,项目名称:buxfer_api,代码行数:30,代码来源:reporter.py

示例10: tmplPage

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
def tmplPage(canvas, doc):  # шаблон страницы
    canvas.saveState()

    class rotateText(Flowable): # определение класса поворачиваемого текста на 90 градусов
        def __init__(self, text):
            self.text = text
            self.parag = Paragraph(self.text, styleSheet)

        def wrap(self, availWidth, availHeight):
            return -availWidth, availHeight

        def draw(self):
            self.canv.rotate(90)
            self.parag.wrapOn(self.canv, self._fixedHeight, self.parag._fixedWidth)
            self.parag.drawOn(self.canv, 0, 0)

    dataTable = [[u'Инвен-\nтарный\nномер', u'Дата', u'Обозначение', rotateText(u'Кол. листов'), # заголовок таблицы
               rotateText(u'Формат'), u'Наименование', u'Кем\nвыпу-\nщен',
               Paragraph(u'Подпись\nо\nприем-\nке до-\nкумента', styleSheet), u'При-\nмечание']]

    t = Table(dataTable, columnWidths, 18*mm) # формирование таблицы
    t.setStyle(tabStyle) # присвоение таблице стиля
    t.wrapOn(canvas, *pagesizes.A4)
    t.drawOn(canvas, 20*mm, pagesizes.A4[1] - (pagesizes.A4[1] - rowHeight*rowCount - t._height)/2 - t._height + Hoffset) # отрисовка таблицы
    canvas.drawString(pagesizes.A4[0] - 10*mm, 5*mm, str(doc.page)) # отрисовка номера страницы
    canvas.restoreState()
开发者ID:den-gts,项目名称:inventar,代码行数:28,代码来源:reportpdf.py

示例11: pdf

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
    def pdf(self):
        """
        Metodo pdf:
        Este metodo genera el pdf, y en el nombre
        le pone la fecha en la que es generado
        utilizamos canvas, y llamamos al metodo tabla
        para agregar la tabla al pdf
        """

        titulos = [
            ["MATRICULA", "VEHICULO", "KILOMETROS", "FECHA ENTRADA", "CLIENTE", "CIF/NIF", "TELEFONO", "DIRECCION"]]
        clientes = titulos + list(self.cursor.execute("select * from taller"))
        tabla = Table(clientes)

        estilo = TableStyle([('GRID', (0, 0), (-1, -1), 2, colors.white),
                             ('BACKGROUND', (0, 1), (-1, -1), colors.lightblue),
                             ('BACKGROUND', (0, 0), (-1, 0), colors.lightred)])
        tabla.setStyle(estilo)

        canvas = canvas.Canvas(self.historialpdf, pagesize=letter)
        canvas.drawString(20, 800, "Impresion lista clientes")

        tabla.wrapOn(canvas, 20, 30)
        tabla.drawOn(canvas, 20, 600)
        canvas.save()

        self.popup("PDF Generado")
开发者ID:ddizoya,项目名称:taller,代码行数:29,代码来源:Generarpdf.py

示例12: draw_order_items

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
def draw_order_items(canvas, order_items):
    data = [[u'Item', u'Kuantiti', u'Harga (RM)', u'Jumlah (RM)'], ]
    for item in order_items:
        data.append([
            item.item.name,
            item.qty,
            '%.2f' % item.item.price_sale,
            '%.2f' % item.total
        ])
    data.append(['Jumlah Keseluruhan: RM%.2f' % item.order.total, '', '', ''])
    table = Table(data, colWidths=[11 * cm, 2 * cm, 3 * cm, 3 * cm], hAlign='LEFT', repeatRows=1)
    table.setStyle([
        ('FONT', (0, 0), (-1, -1), 'Helvetica'),
        ('FONTSIZE', (0, 0), (-1, -1), 10),
        ('TEXTCOLOR', (0, 0), (-1, -1), (0.2, 0.2, 0.2)),
        #('GRID', (0, 0), (-1, -2), 1, (0.7, 0.7, 0.7)),
        #('GRID', (-2, -1), (-1, -1), 1, (0.7, 0.7, 0.7)),
        ('ALIGN', (2, 0), (-1, -1), 'RIGHT'), # price, total
        #('BACKGROUND', (2, 0), (-1, -1), colors.yellow), # price, total
        ('ALIGN', (1, 0), (-1, -1), 'CENTER'), # qty
        #('BACKGROUND', (0, 0), (0, -1), colors.yellow), # item
        ('LEFTPADDING', (0, 0), (0, -1), 0), # item
        #('BACKGROUND', (0, 0), (-1, 0), (0.8, 0.8, 0.8)),
        ('LINEBELOW', (0, 0), (-1, 0), 1, colors.black),
        ('LINEBELOW', (0, -2), (-1, -2), 1, colors.black),
    ])
    return table
    tw, th, = table.wrapOn(canvas, 15 * cm, 19 * cm)
    table.drawOn(canvas, 1 * cm, -4 * cm - th)
    return tw, th
开发者ID:k4ml,项目名称:jazzpos,代码行数:32,代码来源:pdf.py

示例13: draw_table

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
def draw_table(c):
    cw, rh = 40, 32
    data = [
            ['00', '01', '02', '03', '04'],
            ['10', '11', '12', '13', '14'],
            ['20', '21', '', '23', '24'],
            ['30', '31', '32', '33', '34'],
            ['40', '41', '42', '43', '44']
           ]
    t = Table(
            data,
            style=[
                ('GRID', (0, 0), (-1, -1), 0.5, colors.grey),
                ('GRID', (1, 1), (-2, -2), 1, colors.green),
                ('BOX', (0, 0), (1, -1), 2, colors.red),
                ('BOX', (0, 0), (-1, -1), 2, colors.black),
                ('LINEABOVE', (1, 2), (-2, 2), 1, colors.blue),
                ('LINEBEFORE', (2, 1), (2, -2), 1, colors.pink),
                ('BACKGROUND', (0, 0), (0, 1), colors.pink),
                ('BACKGROUND', (1, 1), (1, 2), colors.lavender),
                ('BACKGROUND', (2, 2), (2, 3), colors.orange),
                ('ALIGN', (0, 0), (4, 4), 'CENTER'),
                ('VALIGN', (0, 0), (4, 4), 'MIDDLE'),
                ],
            colWidths=[cw] * len(data[0]),
            rowHeights=[rh] * len(data),)
    w, h = t.wrapOn(c, W, H)
    t.drawOn(c, (W - w) // 2, (H - h) // 2)
开发者ID:sfabriz,项目名称:reportlab-experiment,代码行数:30,代码来源:example.py

示例14: draw_table

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
 def draw_table(width_columns, data):
     table = Table(data, style=TABLE_STYLE, colWidths=width_columns)
     _, new_current_h = table.wrapOn(self.pdf, current_w, current_h)
     table.drawOn(
         self.pdf, current_x, self.height - current_y - new_current_h)
     self.position_y = current_y + max(new_current_h, current_h)
     return
开发者ID:Lucterios2,项目名称:core,代码行数:9,代码来源:reporting.py

示例15: setFooter

# 需要导入模块: from reportlab.platypus import Table [as 别名]
# 或者: from reportlab.platypus.Table import drawOn [as 别名]
    def setFooter(self, pageNumber):
        """
        sets all footer information per page, add page info, footer bar, and privacy info, aligned on the bottom center of the page
        :param pageNumber:
        :return:
        """
        companyLogoW = self.setCompanyLogo()
        companyLogoW += 5 if companyLogoW else 0 # add 5 for padding if company logo exists
        self.canvas.setLineWidth(width=1)
        self.canvas.setFillColor(lightslategray)
        self.canvas.setStrokeColor(black)
        self.canvas.rect(self.marginSize+companyLogoW, self.header, (self.pageWidth-(self.marginSize*2))-companyLogoW, (self.marginSize/2), fill=True, stroke=True)
        self.canvas.setFillColor(black)
        # footer text
        self.canvas.setFont(self.fontType, 9)
        self.canvas.drawRightString(self.pageWidth-(self.marginSize*1.25), (self.marginSize*1.625),"%s Page - %d" % (self.pageInfo, pageNumber))

        # set privacy info on the bottom of the page
        privacyInfo = {'msg1':"CONFIDENTIAL: The images, artwork and other materials displayed are the proprietary property of %s."%self.companyName,
                       'msg2':"Any unauthorized use, printing, copying or distribution of such images, artwork and materials is strictly prohibited. All rights reserved.",
                       'textColor':self.textColor,
                       'fontName':self.fontType,
                       'size':7}
        shotName = Paragraph('''<para align=center spaceb=3>
                                  <font name=%(fontName)s size=%(size)s color=%(textColor)s>%(msg1)s<br/>
                                  %(msg2)s</font></para>'''%privacyInfo, self.styles['BodyText'])
        privacyTable = Table([[shotName]], colWidths=(self.pageWidth-(self.marginSize*2)))
        privacyTable.setStyle(TableStyle([('VALIGN',(-1,-1),(-1,-1),'TOP')]))
        privacyTable.wrapOn(self.canvas, self.marginSize, 10)
        privacyTable.drawOn(self.canvas, self.marginSize, 10)
开发者ID:Aeium,项目名称:dotStudio,代码行数:32,代码来源:FnPdfExporter.py


注:本文中的reportlab.platypus.Table.drawOn方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。