Python reportlab.platypus 模块,Table() 实例源码

我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用reportlab.platypus.Table()

项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_otros(self):
        orden = self.orden_compra
        p = ParagraphStyle('parrafos', 
                           alignment = TA_CENTER,
                           fontSize = 8,
                           fontName="Times-Roman")
        sub_total = Paragraph(u"SUBTOTAL: ",p)
        igv = Paragraph(u"IGV: ",p)
        total = Paragraph(u"TOTAL: ",p)
        datos_otros = [[ Paragraph(u"LUGAR DE ENTREGA",p),  Paragraph(u"PLAZO DE ENTREGA",p),  Paragraph(u"FORMA DE PAGO",p),sub_total,orden.subtotal],
                       [Paragraph(EMPRESA.direccion(),p),Paragraph(u"INMEDIATA",p),Paragraph(orden.forma_pago.descripcion,p),igv,str(orden.igv)],
                       ['','','',total,str(orden.total)],
                       ]
        tabla_otros = Table(datos_otros,colWidths=[5.5 * cm, 5 * cm, 5 * cm, 2 * cm, 2.5 * cm])
        tabla_otros.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (2, 2), 1, colors.black),
                ('SPAN',(0,1),(0,2)),
                ('SPAN',(1,1),(1,2)),
                ('SPAN',(2,1),(2,2)),
                ('GRID', (4, 0), (4, 2), 1, colors.black),
                ('VALIGN',(0,1),(2,1),'MIDDLE'),
            ]
        ))
        return tabla_otros
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def cuadro_observaciones(self,pdf,y,orden):
        p = ParagraphStyle('parrafos')
        p.alignment = TA_JUSTIFY 
        p.fontSize = 10
        p.fontName="Times-Roman"
        obs=Paragraph("Observaciones: "+orden.observaciones,p)
        observaciones = [[obs]]
        tabla_observaciones = Table(observaciones,colWidths=[18.50 * cm], rowHeights=1.8 * cm)
        tabla_observaciones.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (0, 2), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
                ('ALIGN',(0,0),(-1,-1),'LEFT'),
                ('VALIGN',(0,0),(-1,-1),'TOP'),
            ]
        ))
        tabla_observaciones.wrapOn(pdf, 800, 600)
        tabla_observaciones.drawOn(pdf, 40,y-58)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_encabezado(self,valorizado):
        sp = ParagraphStyle('parrafos',
                            alignment=TA_CENTER,
                            fontSize=14,
                            fontName="Times-Roman")
        try:
            archivo_imagen = os.path.join(settings.MEDIA_ROOT, str(EMPRESA.logo))
            imagen = Image(archivo_imagen, width=90, height=50, hAlign='LEFT')
        except:
            imagen = Paragraph(u"LOGO", sp)
        if valorizado:
            titulo = Paragraph(u"REGISTRO DEL INVENTARIO PERMANENTE VALORIZADO", sp)
        else:
            titulo = Paragraph(u"REGISTRO DEL INVENTARIO PERMANENTE EN UNIDADES FÍSICAS", sp)

        encabezado = [[imagen,titulo]]
        tabla_encabezado = Table(encabezado, colWidths=[2 * cm, 23 * cm])
        return tabla_encabezado
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def detalle(self,pdf,y,cotizacion):
        encabezados = ('Nro', 'Descripción', 'Unidad','Cantidad')
        detalles = cotizacion.detallecotizacion_set.all()
        lista_detalles = []
        for detalle in detalles:
            tupla_producto = (detalle.nro_detalle, detalle.detalle_requerimiento.producto.descripcion, detalle.detalle_requerimiento.producto.unidad_medida.descripcion, detalle.cantidad)
            lista_detalles.append(tupla_producto)            
        adicionales = [('','','','')]*(15-len(detalles))
        tabla_detalle = Table([encabezados] + lista_detalles + adicionales,colWidths=[1 * cm, 13.5 * cm, 1.5 * cm, 2* cm])
        tabla_detalle.setStyle(TableStyle(
            [
                ('ALIGN',(0,0),(3,0),'CENTER'),
                ('GRID', (0, 0), (-1, -1), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 7),  
                ('ALIGN',(3,1),(-1,-1),'LEFT'),           
            ]
        ))
        tabla_detalle.wrapOn(pdf, 800, 600)
        tabla_detalle.drawOn(pdf, 40,y+80)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def cuadro_observaciones(self,pdf,y,cotizacion):
        p = ParagraphStyle('parrafos')
        p.alignment = TA_JUSTIFY 
        p.fontSize = 8
        p.fontName="Times-Roman"
        obs=Paragraph("OBSERVACIONES: "+cotizacion.observaciones,p)
        observaciones = [[obs]]
        tabla_observaciones = Table(observaciones,colWidths=[18 * cm], rowHeights=1.8 * cm)
        tabla_observaciones.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (0, 2), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
                ('ALIGN',(0,0),(-1,-1),'LEFT'),
                ('VALIGN',(0,0),(-1,-1),'TOP'),
            ]
        ))
        tabla_observaciones.wrapOn(pdf, 800, 600)
        tabla_observaciones.drawOn(pdf, 40,y+20)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_encabezado(self, styles):
        sp = ParagraphStyle('parrafos',
                            alignment=TA_CENTER,
                            fontSize=14,
                            fontName="Times-Roman")
        requerimiento = self.requerimiento
        try:
            archivo_imagen = os.path.join(settings.MEDIA_ROOT, str(EMPRESA.logo))
            imagen = Image(archivo_imagen, width=90, height=50, hAlign='LEFT')
        except:
            print u"Ingresa acá  "
            imagen = Paragraph(u"LOGO", sp)
        nro = Paragraph(u"REQUERIMIENTO DE BIENES Y SERVICIOS<br/>N°" + requerimiento.codigo, sp)
        encabezado = [[imagen, nro, '']]
        tabla_encabezado = Table(encabezado, colWidths=[4 * cm, 11 * cm, 4 * cm])
        tabla_encabezado.setStyle(TableStyle(
            [
                ('ALIGN', (0, 0), (1, 0), 'CENTER'),
                ('VALIGN', (0, 0), (1, 0), 'CENTER'),
            ]
        ))
        return tabla_encabezado
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_datos(self, styles):
        requerimiento = self.requerimiento
        izquierda = ParagraphStyle('parrafos',
                                   alignment=TA_LEFT,
                                   fontSize=10,
                                   fontName="Times-Roman")
        solicitado = Paragraph(u"SOLICITADO POR: " + requerimiento.solicitante.nombre_completo(), izquierda)
        oficina = Paragraph(u"OFICINA: " + requerimiento.oficina.nombre, izquierda)
        motivo = Paragraph(u"MOTIVO: " + requerimiento.motivo, izquierda)
        fecha = Paragraph(u"FECHA DE REQUERIMIENTO: " + requerimiento.fecha.strftime('%d/%m/%Y'), izquierda)
        mes = Paragraph(u"MES EN QUE SE NECESITA: " + requerimiento.get_mes_display(), izquierda)
        para_stock = Paragraph(u"AÑO EN QUE SE NECESITA: " + str(requerimiento.annio), izquierda)
        if requerimiento.entrega_directa_solicitante:
            entrega = Paragraph(u"ENTREGA DIRECTAMENTE AL SOLICITANTE: SI", izquierda)
        else:
            entrega = Paragraph(u"ENTREGA DIRECTAMENTE AL SOLICITANTE: NO", izquierda)
        datos = [[solicitado, oficina], [motivo], [fecha, mes], [para_stock, entrega]]
        tabla_datos = Table(datos, colWidths=[11 * cm, 9 * cm])
        style = TableStyle(
            [
                ('SPAN', (0, 1), (1, 1)),
            ]
        )
        tabla_datos.setStyle(style)
        return tabla_datos
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_observaciones(self):
        requerimiento = self.requerimiento
        p = ParagraphStyle('parrafos')
        p.alignment = TA_JUSTIFY
        p.fontSize = 8
        p.fontName = "Times-Roman"
        obs = Paragraph("OBSERVACIONES: " + requerimiento.observaciones, p)
        observaciones = [[obs]]
        tabla_observaciones = Table(observaciones, colWidths=[20 * cm], rowHeights=1.8 * cm)
        tabla_observaciones.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (0, 2), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
                ('ALIGN', (0, 0), (-1, -1), 'LEFT'),
                ('VALIGN', (0, 0), (-1, -1), 'TOP'),
            ]
        ))
        return tabla_observaciones
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_observaciones(self):
        movimiento = self.movimiento
        p = ParagraphStyle('parrafos',
                           alignment = TA_JUSTIFY,
                           fontSize = 8,
                           fontName="Times-Roman")
        obs=Paragraph("OBSERVACIONES: "+movimiento.observaciones,p)
        observaciones = [[obs]]
        tabla_observaciones = Table(observaciones,colWidths=[20 * cm], rowHeights=1.8 * cm)
        tabla_observaciones.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (0, 2), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
                ('ALIGN',(0,0),(-1,-1),'LEFT'),
                ('VALIGN',(0,0),(-1,-1),'TOP'),
            ]
        ))
        return tabla_observaciones
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_encabezado_consolidado(self, grupos):
        sp = ParagraphStyle('parrafos',
                            alignment=TA_CENTER,
                            fontSize=14,
                            fontName="Times-Roman")
        try:
            archivo_imagen = os.path.join(settings.MEDIA_ROOT, str(EMPRESA.logo))
            imagen = Image(archivo_imagen, width=90, height=50, hAlign='LEFT')
        except:
            imagen = Paragraph(u"LOGO", sp)
        if grupos:
            titulo = Paragraph(u"RESUMEN MENSUAL DE ALMACÉN POR GRUPOS Y CUENTAS", sp)
        else:
            titulo = Paragraph(u"RESUMEN MENSUAL DE ALMACÉN POR PRODUCTOS", sp)

        encabezado = [[imagen,titulo]]
        tabla_encabezado = Table(encabezado, colWidths=[2 * cm, 23 * cm])
        style = TableStyle(
            [
                ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
            ]
        )
        tabla_encabezado.setStyle(style)
        return tabla_encabezado
项目:geo-hpc    作者:itpir    | 项目源码 | 文件源码
def add_timeline(self):

        ptext = '<b><font size=14>Processing Timeline</font></b>'
        self.Story.append(Paragraph(ptext, self.styles['Normal']))
        self.Story.append(Spacer(1, 0.1*inch))

        data = [
            [self.request['stage'][0]['name'], self.time_str(self.request['stage'][0]['time'])],
            [self.request['stage'][1]['name'], self.time_str(self.request['stage'][1]['time'])],
            [self.request['stage'][2]['name'], self.time_str(self.request['stage'][2]['time'])],
            [self.request['stage'][3]['name'], self.time_str(int(time.time()))]
            # ['complete', self.time_str(self.request['stage'][3]['time'])]
        ]

        data = [[i[0], pg(i[1], 1)] for i in data]
        t = Table(data)

        t.setStyle(TableStyle([
            ('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
            ('BOX', (0,0), (-1,-1), 0.25, colors.black)
        ]))

        self.Story.append(t)
项目:yahoo-fantasy-football-metrics    作者:uberfastman    | 项目源码 | 文件源码
def create_title(self, title_text, element_type=None):

        if element_type == "document":
            title_text_style = self.text_styleT
        elif element_type == "section":
            title_text_style = self.text_styleH
        else:
            title_text_style = self.text_styleN

        title = Paragraph('''<para align=center spaceb=3><b>''' + title_text + '''</b></para>''', title_text_style)
        title_table = Table([[title]], colWidths=[5 * inch] * 1)
        title_table.setStyle(self.title_style)
        return title_table
项目:yahoo-fantasy-football-metrics    作者:uberfastman    | 项目源码 | 文件源码
def create_data_table(self, col_headers, data, table_style_for_ties, col_widths=None, tied_metric_bool=False):

        [col_headers.append(item) for item in data]
        table = Table(col_headers, colWidths=col_widths)

        if tied_metric_bool:
            if col_headers[0][-1] == "Bench Points":
                tied_score_col_widths = [0.75 * inch, 1.75 * inch, 1.75 * inch, 1.00 * inch, 1.50 * inch, 1.00 * inch]
                table = Table(col_headers, colWidths=tied_score_col_widths)
            table.setStyle(table_style_for_ties)
        else:
            table.setStyle(self.style)
        return table
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_encabezado(self, styles):
        orden_compra = self.orden_compra
        sp = ParagraphStyle('parrafos',
                            alignment = TA_CENTER,
                            fontSize = 14,
                            fontName="Times-Roman")
        try:
            archivo_imagen = os.path.join(settings.MEDIA_ROOT,str(EMPRESA.logo))
            imagen = Image(archivo_imagen, width=90, height=50,hAlign='LEFT')
        except:
            imagen = Paragraph(u"LOGO", sp)

        nro = Paragraph(u"ORDEN DE COMPRA", sp)
        ruc = Paragraph("R.U.C."+EMPRESA.ruc, sp)
        encabezado = [[imagen,nro,ruc],['',u"N°"+orden_compra.codigo,EMPRESA.distrito + " " + orden_compra.fecha.strftime('%d de %b de %Y')]]
        tabla_encabezado = Table(encabezado,colWidths=[4 * cm, 9 * cm, 6 * cm])
        tabla_encabezado.setStyle(TableStyle(
            [
                ('ALIGN',(0,0),(2,1),'CENTER'),
                ('VALIGN',(0,0),(2,0),'CENTER'),
                ('VALIGN',(1,1),(2,1),'TOP'),
                ('SPAN',(0,0),(0,1)),  

            ]
        ))
        return tabla_encabezado
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_datos(self, styles):
        orden = self.orden_compra
        izquierda = ParagraphStyle('parrafos',
                            alignment = TA_LEFT,
                            fontSize = 10,
                            fontName="Times-Roman")
        cotizacion = orden.cotizacion
        if cotizacion is None:
            proveedor = orden.proveedor
        else:
            proveedor = orden.cotizacion.proveedor
        razon_social_proveedor = Paragraph(u"SEÑOR(ES): "+proveedor.razon_social, izquierda)
        ruc_proveedor = Paragraph(u"R.U.C.: "+proveedor.ruc, izquierda)
        direccion = Paragraph(u"DIRECCIÓN: "+proveedor.direccion, izquierda)
        try:
            telefono = Paragraph(u"TELÉFONO: "+proveedor.telefono, izquierda)
        except:
            telefono = Paragraph(u"TELÉFONO: -", izquierda)
        try:
            referencia = Paragraph(u"REFERENCIA: "+orden.cotizacion.requerimiento.codigo+" - "+orden.cotizacion.requerimiento.oficina.nombre, izquierda)
        except:
            referencia = Paragraph(u"REFERENCIA: ",izquierda)
        proceso = Paragraph(u"PROCESO: "+orden.proceso, izquierda)
        nota = Paragraph(u"Sírvase remitirnos según especificaciones que detallamos lo siguiente: ", izquierda)
        datos = [[razon_social_proveedor,ruc_proveedor],[direccion,telefono],[referencia,''],[proceso,''],[nota,'']]
        tabla_detalle = Table(datos,colWidths=[11* cm, 9 * cm])        
        tabla_detalle.setStyle(TableStyle(
            [
                ('SPAN',(0,2),(1,2)),                        
            ]
        ))
        return tabla_detalle
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_detalle(self):
        orden = self.orden_compra
        encabezados = ['Item', 'Cantidad', 'Unidad', u'Descripción','Precio','Total']
        detalles = DetalleOrdenCompra.objects.filter(orden=orden).order_by('pk')
        sp = ParagraphStyle('parrafos')
        sp.alignment = TA_JUSTIFY 
        sp.fontSize = 8
        sp.fontName="Times-Roman"        
        lista_detalles = []
        for detalle in detalles:
            try:
                tupla_producto = [Paragraph(str(detalle.nro_detalle),sp), 
                                  Paragraph(str(detalle.cantidad), sp),
                                  Paragraph(detalle.detalle_cotizacion.detalle_requerimiento.producto.unidad_medida.descripcion,sp),
                                  Paragraph(detalle.detalle_cotizacion.detalle_requerimiento.producto.descripcion, sp),
                                  Paragraph(str(detalle.precio),sp),
                                  Paragraph(str(detalle.valor),sp)]
            except:
                tupla_producto = [Paragraph(str(detalle.nro_detalle),sp), 
                                  Paragraph(str(detalle.cantidad), sp),
                                  Paragraph(detalle.producto.unidad_medida.descripcion,sp),
                                  Paragraph(detalle.producto.descripcion, sp),
                                  Paragraph(str(detalle.precio),sp),
                                  Paragraph(str(detalle.valor),sp)]
            lista_detalles.append(tupla_producto)
        adicionales = [('','','','','')] * (15-len(lista_detalles))
        tabla_detalle = Table([encabezados] + lista_detalles + adicionales,colWidths=[0.8 * cm, 2 * cm, 2.5 * cm,10.2* cm, 2 * cm, 2.5 * cm])
        style = TableStyle(
            [
                ('ALIGN',(0,0),(4,0),'CENTER'),
                ('GRID', (0, 0), (-1, -1), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 7),  
                ('ALIGN',(4,1),(-1,-1),'LEFT'), 
                ('VALIGN',(0,0),(-1,-1),'TOP'),          
            ]
        )
        tabla_detalle.setStyle(style)
        return tabla_detalle
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_total_letras(self):
        orden = self.orden_compra
        total_letras = [("SON: "+orden.total_letras,'')]
        tabla_total_letras = Table(total_letras,colWidths=[17.5 * cm, 2.5 * cm])
        tabla_total_letras.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (1, 0), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
            ]
        ))
        return tabla_total_letras
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_afectacion_presupuestal(self):
        orden = self.orden_compra
        p = ParagraphStyle('parrafos', 
                           alignment = TA_JUSTIFY,
                           fontSize = 8,
                           fontName="Times-Roman")
        hoja_afectacion = Paragraph(u"HOJA DE AFECTACIÓN PRESUPUESTAL: ",p)
        importante = Paragraph(u"IMPORTANTE: ", p)
        recibido = Paragraph(u"RECIBIDO POR: ", p)
        firma = Paragraph(u"FIRMA: ", p)
        nombre = Paragraph(u"NOMBRE: ", p)
        dni = Paragraph(u"DNI: ", p)
        lista = ListFlowable([
                          Paragraph("""Consignar el número de la presente Orden de Compra en su Guía de Remisión y Factura. 
                          Facturar a nombre de """ + smart_str(EMPRESA.razon_social),p),
                          Paragraph("El " + smart_str(EMPRESA.razon_social) + """, se reserva el derecho de devolver 
                          la mercaderia, sino se ajusta a las especificaciones requeridas, asimismo de anular la presente 
                          Orden de Compra.""",p),
                          Paragraph("""El pago de toda factura se hará de acuerdo a las condiciones establecidas.""",p)
                          ],bulletType='1'
                         )
        datos_otros = [[hoja_afectacion,''],
                       [importante,recibido],
                       [lista,''],
                       ['',firma],
                       ['',nombre],
                       ['',dni],
                       ]
        tabla_afectacion_presupuestal = Table(datos_otros,colWidths=[10 * cm, 10 * cm])
        tabla_afectacion_presupuestal.setStyle(TableStyle(
            [
                ('ALIGN',(0,1),(1,1),'CENTER'), 
                ('SPAN',(0,2),(0,5)),               
            ]
        ))
        return tabla_afectacion_presupuestal
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def detalle(self,pdf,y,orden):
        encabezados = ('Item', 'Cantidad', 'Unidad', u'Descripción','Precio','Total')
        try:
            detalles = [(detalle.nro_detalle, detalle.cantidad, detalle.detalle_cotizacion.detalle_requerimiento.producto.unidad_medida.descripcion, detalle.detalle_cotizacion.detalle_requerimiento.producto.descripcion, detalle.precio,round(detalle.valor,5)) for detalle in DetalleOrdenCompra.objects.filter(orden=orden)]
        except:
            detalles = [(detalle.nro_detalle, detalle.cantidad, detalle.producto.unidad_medida.descripcion, detalle.producto.descripcion, detalle.precio, round(detalle.precio,5)) for detalle in DetalleOrdenCompra.objects.filter(orden=orden)]
        adicionales = [('','','','','','')]*(15-len(detalles))
        detalle_orden = Table([encabezados] + detalles + adicionales,colWidths=[0.8 * cm, 1.9 * cm, 2 * cm,9.3* cm, 2 * cm, 2.5 * cm])
        detalle_orden.setStyle(TableStyle(
            [
                ('ALIGN',(0,0),(5,0),'CENTER'),
                ('GRID', (0, 0), (-1, -1), 1, colors.black), 
                #('LINEBELOW', (0,1), (5,-1), 0, colors.black),                  
                ('FONTSIZE', (0, 0), (-1, -1), 8),  
                ('ALIGN',(4,1),(-1,-1),'RIGHT'),           
            ]
        ))
        detalle_orden.wrapOn(pdf, 800, 600)
        detalle_orden.drawOn(pdf, 40,y+75)
        #Letras
        total_letras = [("SON: "+orden.total_letras,'')]
        tabla_total_letras = Table(total_letras,colWidths=[16 * cm, 2.5 * cm])
        tabla_total_letras.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (1, 0), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
            ]
        ))
        tabla_total_letras.wrapOn(pdf, 800, 600)
        tabla_total_letras.drawOn(pdf, 40,y+55)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def otros(self,pdf,y,orden):
        encabezados_otros = ('LUGAR DE ENTREGA', 'PLAZO DE ENTREGA', 'FORMA DE PAGO')
        otros = [(EMPRESA.direccion(),u"INMEDIATA",orden.forma_pago.descripcion)]
        tabla_otros = Table([encabezados_otros] + otros,colWidths=[6 * cm, 3.5 * cm, 4.5 * cm], rowHeights=[0.6 * cm, 1 * cm])
        tabla_otros.setStyle(TableStyle(
            [
                ('ALIGN',(0,0),(2,0),'CENTER'),  
                ('GRID', (0, 0), (2, 1), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),                
            ]
        ))
        tabla_otros.wrapOn(pdf, 800, 600)
        tabla_otros.drawOn(pdf, 40,y+5)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def cuadro_total(self,pdf,y,orden):
        pdf.drawString(445, y+40, u"SUB-TOTAL: ")
        pdf.drawString(445, y+20, u"IGV: ")
        pdf.drawString(445, y, u"TOTAL: S/")
        total = [[round(orden.subtotal,2)],[round(orden.impuesto,2)],[round(orden.total,2)]]
        tabla_total = Table(total,colWidths=[2.5 * cm])
        tabla_total.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (0, 2), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
                ('ALIGN',(0,0),(-1,-1),'RIGHT'),
            ]
        ))
        tabla_total.wrapOn(pdf, 800, 600)
        tabla_total.drawOn(pdf, 495,y-2)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def cuadro_observaciones(self,pdf,y,orden):
        p = ParagraphStyle('parrafos')
        p.alignment = TA_JUSTIFY 
        p.fontSize = 10
        p.fontName="Times-Roman"
        obs=Paragraph("Observaciones: "+orden.observaciones,p)
        observaciones = [[obs]]
        tabla_observaciones = Table(observaciones,colWidths=[18.50 * cm], rowHeights=1.8 * cm)
        tabla_observaciones.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (0, 2), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
                ('ALIGN',(0,0),(-1,-1),'LEFT'),
                ('VALIGN',(0,0),(-1,-1),'TOP'),
            ]
        ))
        tabla_observaciones.wrapOn(pdf, 800, 600)
        tabla_observaciones.drawOn(pdf, 40,y-58)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def otros(self,pdf,y,orden):
        encabezados_otros = ('LUGAR DE ENTREGA', 'PLAZO DE ENTREGA', 'FORMA DE PAGO')
        otros = [('',u" DÍAS","")]
        tabla_otros = Table([encabezados_otros] + otros,colWidths=[6 * cm, 3.5 * cm, 4.5 * cm], rowHeights=[0.6 * cm, 1 * cm])
        tabla_otros.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (2, 1), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),                
            ]
        ))
        tabla_otros.wrapOn(pdf, 800, 600)
        tabla_otros.drawOn(pdf, 40,y+5)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def cuadro_total(self,pdf,y,orden):
        pdf.drawString(445, y+40, u"SUB-TOTAL: ")
        pdf.drawString(445, y+20, u"IGV: ")
        pdf.drawString(445, y, u"TOTAL: ")
        total = [[orden.subtotal],[str(orden.impuesto)],[str(orden.total)]]
        tabla_total = Table(total,colWidths=[2.5 * cm])
        tabla_total.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (0, 2), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
                ('ALIGN',(0,0),(-1,-1),'RIGHT'),
            ]
        ))
        tabla_total.wrapOn(pdf, 800, 600)
        tabla_total.drawOn(pdf, 495,y-2)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def cabecera(self,pdf,cotizacion):
        archivo_imagen = os.path.join(settings.MEDIA_ROOT,str(EMPRESA.logo))
        pdf.drawImage(archivo_imagen, 20, 750, 120, 90,preserveAspectRatio=True)  
        pdf.setFont("Times-Roman", 14)
        encabezado = [[u"SOLICITUD DE COTIZACIÓN"]]
        tabla_encabezado = Table(encabezado,colWidths=[8 * cm])
        tabla_encabezado.setStyle(TableStyle(
            [
                ('ALIGN',(0,0),(0,0),'CENTER'),
                ('GRID', (0, 0), (1, 0), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 10),
            ]
        ))
        tabla_encabezado.wrapOn(pdf, 800, 600)
        tabla_encabezado.drawOn(pdf, 200,800)
        pdf.drawString(270, 780, u"N°"+cotizacion.codigo)
        pdf.setFont("Times-Roman", 10)        
        pdf.drawString(40, 750, u"SEÑOR(ES): "+cotizacion.proveedor.razon_social)
        pdf.drawString(440, 750, u"R.U.C.: "+cotizacion.proveedor.ruc)
        direccion = cotizacion.proveedor.direccion
        if len(direccion)>60:
            pdf.drawString(40,730,u"DIRECCIÓN: "+direccion[0:60])
            pdf.drawString(105, 720,direccion[60:])
        else:            
            pdf.drawString(40,730,u"DIRECCIÓN: "+direccion)
        try:
            pdf.drawString(440, 730, u"TELÉFONO: "+cotizacion.proveedor.telefono)
        except:
            pdf.drawString(440, 730, u"TELÉFONO: -")
        pdf.drawString(40, 710, u"FECHA: "+cotizacion.fecha.strftime('%d/%m/%Y'))
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_encabezado(self, styles):
        movimiento = self.movimiento        
        sp = ParagraphStyle('parrafos',
                            alignment = TA_CENTER,
                            fontSize = 14,
                            fontName="Times-Roman")
        try:
            archivo_imagen = os.path.join(settings.MEDIA_ROOT,str(EMPRESA.logo))
            imagen = Image(archivo_imagen, width=90, height=50,hAlign='LEFT')
        except:
            imagen = Paragraph(u"LOGO", sp)

        if movimiento.tipo_movimiento.incrementa:
            nota = Paragraph(u"NOTA DE INGRESO N°", sp)
        else:
            nota = Paragraph(u"NOTA DE SALIDA N°", sp)
        id_movimiento = Paragraph(movimiento.id_movimiento, sp)
        fecha = Paragraph("FECHA: "+movimiento.fecha_operacion.strftime('%d/%m/%y'), sp)        
        encabezado = [[imagen,nota,fecha],
                      ['',id_movimiento,'']
                      ]
        tabla_encabezado = Table(encabezado,colWidths=[4 * cm, 9 * cm, 6 * cm])
        tabla_encabezado.setStyle(TableStyle(
            [
                ('VALIGN',(0,0),(2,0),'CENTER'),
                ('VALIGN',(1,1),(2,1),'TOP'),                
                ('SPAN',(0,0),(0,1)),                        
            ]
        ))
        return tabla_encabezado
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_datos(self, styles):
        movimiento = self.movimiento
        izquierda = ParagraphStyle('parrafos',
                            alignment = TA_LEFT,
                            fontSize = 10,
                            fontName="Times-Roman")
        try:
            if movimiento.referencia.cotizacion is not None:
                proveedor = Paragraph(u"PROVEEDOR: "+movimiento.referencia.cotizacion.proveedor.razon_social,izquierda)
            else:
                proveedor = Paragraph(u"PROVEEDOR: "+movimiento.referencia.proveedor.razon_social,izquierda)
        except:
            proveedor = Paragraph(u"PROVEEDOR:",izquierda)
        operacion = Paragraph(u"OPERACIÓN: "+movimiento.tipo_movimiento.descripcion,izquierda)
        almacen = Paragraph(u"ALMACÉN: "+movimiento.almacen.codigo+"-"+movimiento.almacen.descripcion,izquierda)
        try:
            orden_compra = Paragraph(u"ORDEN DE COMPRA: "+movimiento.referencia.codigo,izquierda)
        except:
            orden_compra = Paragraph(u"REFERENCIA: -",izquierda)
        try:
            documento = Paragraph(u"DOCUMENTO: "+movimiento.tipo_documento.descripcion + " SERIE:" + movimiento.serie + u" NÚMERO:" + movimiento.numero,
                                  izquierda)
        except:
            documento = ""
        try:
            pedido = Paragraph(u"PEDIDO: "+movimiento.pedido.codigo, izquierda)
        except:
            pedido = ""
        encabezado = [[operacion,''],
                      [almacen,''],
                      [proveedor,''],
                      [orden_compra,''],
                      [documento,''],
                      [pedido,'']]
        tabla_datos = Table(encabezado,colWidths=[11 * cm, 9 * cm])
        tabla_datos.setStyle(TableStyle(
            [

            ]
        ))
        return tabla_datos
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_detalle(self):
        movimiento = self.movimiento
        encabezados = ['Item', 'Cantidad', 'Unidad', u'Descripción','Precio','Total']
        detalles = DetalleMovimiento.objects.filter(movimiento=movimiento).order_by('pk')
        sp = ParagraphStyle('parrafos')
        sp.alignment = TA_JUSTIFY 
        sp.fontSize = 8
        sp.fontName="Times-Roman"        
        lista_detalles = []
        for detalle in detalles:
            tupla_producto = [str(detalle.nro_detalle),
                              format(detalle.cantidad,'.5f'),
                              str(detalle.producto.unidad_medida.codigo),
                              detalle.producto.descripcion,
                              format(detalle.precio,'.5f'),
                              format(detalle.valor,'.5f')]
            lista_detalles.append(tupla_producto)
        adicionales = [('','','','','')] * (15-len(lista_detalles))
        tabla_detalle = Table([encabezados] + lista_detalles,colWidths=[1.5 * cm, 2.5 * cm, 1.5 * cm,10* cm, 2 * cm, 2.5 * cm])
        style = TableStyle(
            [
                ('GRID', (0, 0), (-1, -1), 1, colors.black), 
                ('FONTSIZE', (0, 0), (-1, -1), 8),  
                ('ALIGN',(4,0),(-1,-1),'RIGHT'),            
            ]
        )
        tabla_detalle.setStyle(style)
        return tabla_detalle
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_firmas(self):
        movimiento = self.movimiento
        izquierda = ParagraphStyle('parrafos',
                            alignment = TA_CENTER,
                            fontSize = 8,
                            fontName="Times-Roman")
        nombre_oficina_administracion = Paragraph(OFICINA_ADMINISTRACION.nombre,izquierda)
        nombre_oficina_logistica = Paragraph(LOGISTICA.nombre,izquierda)
        if movimiento.tipo_movimiento.incrementa:            
            total = [[nombre_oficina_administracion,'', nombre_oficina_logistica]]
            tabla_firmas = Table(total,colWidths=[7 * cm,4 * cm,7 * cm])
            tabla_firmas.setStyle(TableStyle(
                [
                    ("LINEABOVE", (0,0), (0,0), 1, colors.black),
                    ("LINEABOVE", (2,0), (2,0), 1, colors.black),
                    ('VALIGN',(0,0),(-1,-1),'TOP'),
                ]
            ))
        else:
            solicitante = Paragraph('SOLICITANTE',izquierda)
            total = [[nombre_oficina_administracion,'',nombre_oficina_logistica,'',solicitante]]
            tabla_firmas = Table(total,colWidths=[5 * cm, 1 * cm, 5 * cm, 1 * cm, 5 * cm])
            tabla_firmas.setStyle(TableStyle(
                [
                    ("LINEABOVE", (0,0), (0,0), 1, colors.black),
                    ("LINEABOVE", (2,0), (2,0), 1, colors.black),
                    ("LINEABOVE", (4,0), (4,0), 1, colors.black),
                    #("LINEABOVE", (2,0), (2,0), 1, colors.black),
                    ('VALIGN',(0,0),(-1,-1),'TOP'),
                ]
            ))

        return tabla_firmas
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def _header_footer(self, canvas, doc):
        canvas.saveState()
        sp = ParagraphStyle('parrafos',
                            alignment=TA_CENTER,
                            fontSize=14,
                            fontName="Times-Roman")
        try:
            archivo_imagen = os.path.join(settings.MEDIA_ROOT, str(EMPRESA.logo))
            imagen = Image(archivo_imagen, width=90, height=50, hAlign='LEFT')
        except:
            imagen = Paragraph(u"LOGO", sp)
        ruc_empresa = "RUC: " + EMPRESA.ruc
        if self.grupos:
            titulo = Paragraph(u"RESUMEN MENSUAL DE ALMACÉN POR GRUPOS Y CUENTAS", sp)
        else:
            titulo = Paragraph(u"RESUMEN MENSUAL DE ALMACÉN", sp)
        periodo = "PERIODO: " + self.desde.strftime('%d/%m/%Y') + ' - ' + self.hasta.strftime('%d/%m/%Y')
        pagina  = u"Página " + str(doc.page) + " de " + str(self.total_paginas)
        encabezado = [[imagen, titulo, pagina],[ruc_empresa,periodo,""]]
        tabla_encabezado = Table(encabezado, colWidths=[3 * cm, 20 * cm, 3 * cm])
        style = TableStyle(
            [
                ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
                ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
            ]
        )
        tabla_encabezado.setStyle(style)
        tabla_encabezado.wrapOn(canvas, 50, 510)
        tabla_encabezado.drawOn(canvas, 50, 510)
        canvas.restoreState()
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def get(self, request, *args, **kwargs): 
        response = HttpResponse(content_type='application/pdf')
        pdf_name = "clientes.pdf"  # llamado clientes
        # la linea 26 es por si deseas descargar el pdf a tu computadora
        # response['Content-Disposition'] = 'attachment; filename=%s' % pdf_name
        buff = BytesIO()
        doc = SimpleDocTemplate(buff,
                                pagesize=letter,
                                rightMargin=40,
                                leftMargin=40,
                                topMargin=60,
                                bottomMargin=18,
                                )
        clientes = []
        styles = getSampleStyleSheet()
        header = Paragraph("Listado de Clientes", styles['Heading1'])
        clientes.append(header)
        headings = ('Nombre', 'Email', 'Edad', 'Direccion')
        allclientes = [(p.codigo, p.descripcion, p.precio_mercado, p.grupo_suministros) for p in Producto.objects.all()]

        t = Table([headings] + allclientes)
        t.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (3, -1), 1, colors.dodgerblue),
                ('LINEBELOW', (0, 0), (-1, 0), 2, colors.darkblue),
                ('BACKGROUND', (0, 0), (-1, 0), colors.dodgerblue)
            ]
        ))
        clientes.append(t)
        doc.build(clientes)
        response.write(buff.getvalue())
        buff.close()
        return response
项目:correios    作者:olist    | 项目源码 | 文件源码
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 ExtraService.get(EXTRA_SERVICE_VD) in shipping_label 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)
项目:ZLib    作者:zenist    | 项目源码 | 文件源码
def test_08_table(self):
        from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
        from reportlab.platypus import SimpleDocTemplate, Spacer, Paragraph, Table
        from reportlab.lib.units import inch
        from reportlab.lib.enums import TA_JUSTIFY
        from reportlab.pdfbase import pdfmetrics
        from reportlab.pdfbase.ttfonts import TTFont
        from reportlab.lib import fonts, colors

        pdfmetrics.registerFont(TTFont('chsFont', 'STHeiti Light.ttc'))
        stylesheet = getSampleStyleSheet()

        elements = []
        doc = SimpleDocTemplate("demo.pdf")

        elements.append(Paragraph('<font name="chsFont">AUT OOM????</font>', stylesheet['Title']))
        elements.append(Spacer(1,12))

        stylesheet.add(ParagraphStyle(name="Justify", alignment=TA_JUSTIFY))
        stylesheet['Justify'].contName = 'chsFont'

        data  = []
        data.append(["???","???","???"])
        data.append(["120","6","50"])
        ts = [('INNERGRID',(0,0),(-1,-1),0.25, colors.black),("BOX",(0,0),(-1,-1),0.25,colors.black),('FONT',(0,0),(-1,-1), 'chsFont')]
        table = Table(data, 2.1*inch, 0.24*inch, ts)
        elements.append(table)

        doc.build(elements)
项目:ZLib    作者:zenist    | 项目源码 | 文件源码
def add_table_content(self, head, data, rowHeights=[30,14], colWidths=[80], style=None):
        '''
        ????
        :param head: ????(???)
        :param data: ????
        :param rowHeights: ?? ??,[30, 14*len(data)]
        :param colWidths: ?? ??,[80* len(data)]
        :param style: ??, ??:???,????,?????,10?????,??0.5???
        '''
        __table_data = [head]
        __table_data.append(data)
        if style == None:
            __sty = [
                ('ALIGN',(0,0),(-1,-1),'LEFT'),
                ('VALIGN',(0,0),(-1,-1),'MIDDLE'),
                ('BACKGROUND',(0,0),(-1,0),colors.lightblue),
                ('FONT',(0,0),(-1,0),'chsFont'),
                ('SIZE',(0,0),(-1,0),10),
                ('GRID',(0,0),(-1,-1),0.5,colors.black),
                ('RIGHTPADDING',(0,0),(-1,-1),0),
            ]
        t=Table(__table_data,
                rowHeights=[rowHeights[0],].extend([rowHeights[1]]*len(data)),
                colWidths=(lambda x: x==[80] and x.extend(x*len(head)) or x)(colWidths),
                style=__sty,
            )
        self.__content.append(t)
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def AddPage(self):

        self.Score_Table=Table(self.Score_Data,[self.cW1*cm]+8*[self.cW*cm], [self.rH1*cm]+[self.rH2*cm]+14*[self.rH*cm])          
        #self.Attendance_Table=Table(self.Attendance_Data,[self.cW*2.2*cm]+4*[self.cW*2*cm],5*[self.rH*cm])
        self.Attendance_Table=Table(self.Attendance_Data,[self.cW1*cm]+4*[self.cW*2*cm],5*[self.rH*cm])

        self.Score_Table.setStyle(TableStyle(self.Score_T_Style))
        self.Attendance_Table.setStyle(TableStyle(self.Attendance_T_Style))

        self.elements.append(self.Score_Table)
        self.elements.append(Spacer(1, 15))
        self.elements.append(self.Attendance_Table)
        self.elements.append(PageBreak())
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def AddPage(self):
        #self.Score_Table=Table(self.Score_Data,[.3*inch]+[1*inch]+8*[0.6*inch], [.8*inch]+[.6*inch]+14*[0.35*inch])   

        self.Score_Table=Table(self.Score_Data,[.5*inch]+[(self.cW1*cm)-.5*inch]+8*[self.cW*cm], [self.rH1*cm]+[self.rH2*cm]+14*[self.rH*cm])   

        self.Attendance_Table=Table(self.Attendance_Data,[self.cW*2.2*cm]+4*[self.cW*2*cm],5*[self.rH*cm])

        self.Score_Table.setStyle(TableStyle(self.Score_T_Style))
        self.Attendance_Table.setStyle(TableStyle(self.Attendance_T_Style))

        self.elements.append(self.Score_Table)
        self.elements.append(Spacer(1, 18))
        self.elements.append(self.Attendance_Table)
        self.elements.append(PageBreak())
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def AddPage(self):
        #self.Score_Table=Table(self.Score_Data,[.3*inch]+[1*inch]+8*[0.6*inch], [.8*inch]+[.6*inch]+14*[0.35*inch])   

        self.Score_Table=Table(self.Score_Data,[.5*inch]+[(self.cW1*cm)-.5*inch]+8*[self.cW*cm], [self.rH1*cm]+[self.rH2*cm]+14*[self.rH*cm])   

        self.Attendance_Table=Table(self.Attendance_Data,[self.cW*2.2*cm]+4*[self.cW*2*cm],5*[self.rH*cm])

        self.Score_Table.setStyle(TableStyle(self.Score_T_Style))
        self.Attendance_Table.setStyle(TableStyle(self.Attendance_T_Style))

        self.elements.append(self.Score_Table)
        self.elements.append(Spacer(1, 18))
        self.elements.append(self.Attendance_Table)
        self.elements.append(PageBreak())
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def SetTable_Style(self):

        #Starts Score Table
        self.Each_Pupil_Style=[('BOX',(0,0),(-1,-1),1.7,colors.black),

                                ('GRID',(0,0),(-1,-1),1,colors.black),#

                                ('VALIGN',(0,0),(-1,-1),'MIDDLE'),
                                ('ALIGN',(0,0),(-1,-1),'CENTER'),
                                ('FONTSIZE',(0,0),(-1,-1),8),

                                ('SPAN',(0,0),(0,-1)), # Roll
                                ('SPAN',(1,0),(1,-1)), # Ad_no
                                ('SPAN',(2,0),(2,-1)),   # Name

                                ('SPAN',(57,0),(57,-1)),   # Attendance
                                ('SPAN',(58,0),(58,-1)),   # promo
                                ('SPAN',(59,0),(59,-1)),   # Basis
                                ('SPAN',(60,0),(60,-1)) ,  # Remark
                                ('SPAN',(4,0),(4,-1)) ,  # Remark

                                ('BOX',(0,0),(4,3),1.5,colors.black), # Subject Blocks
                                ('BOX',(5,0),(8,3),1.5,colors.black),
                                ('BOX',(9,0),(12,3),1.5,colors.black),
                                ('BOX',(13,0),(16,3),1.5,colors.black),
                                ('BOX',(17,0),(20,3),1.5,colors.black),
                                ('BOX',(21,0),(24,3),1.5,colors.black),
                                ('BOX',(25,0),(28,3),1.5,colors.black),
                                ('BOX',(29,0),(32,3),1.5,colors.black),
                                ('BOX',(33,0),(36,3),1.5,colors.black),
                                ('BOX',(37,0),(40,3),1.5,colors.black),
                                ('BOX',(41,0),(45,3),1.5,colors.black), # IT with practical
                                ('BOX',(46,0),(51,3),1.5,colors.black),
                                ('BOX',(52,0),(56,3),1.5,colors.black),
                                ('BOX',(53,0),(54,3),1.2,colors.black),# % and all
                                ('BOX',(55,0),(56,3),1.2,colors.black),
                                ('BOX',(57,0),(58,3),1.2,colors.black),
                                ('BOX',(59,0),(60,3),1.2,colors.black),
                                ]
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def Add_Consolidation(self):


        fill=16-self.table_count
        self.elements.append(Spacer(1, fill*15))
        self.Consolidation_Table=Table(self.CONSOLIDATION,[9*cm]+[4*cm]+[1*cm]*3+[9*cm]*3,[.3*cm]+[.3*cm]*4)

        self.Consolidation_Table.setStyle(TableStyle(self.Consolidation_Style))
        self.elements.append(Spacer(1, 10))

        self.elements.append(self.Consolidation_Table)
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def AddPage(self):

        self.Score_Table=Table(self.Score_Data,[self.cW1*cm]+8*[self.cW*cm], [self.rH1*cm]+[self.rH2*cm]+14*[self.rH*cm])          
        #self.Attendance_Table=Table(self.Attendance_Data,[self.cW*2.2*cm]+4*[self.cW*2*cm],5*[self.rH*cm])
        self.Attendance_Table=Table(self.Attendance_Data,[self.cW1*cm]+4*[self.cW*2*cm],5*[self.rH*cm])

        self.Score_Table.setStyle(TableStyle(self.Score_T_Style))
        self.Attendance_Table.setStyle(TableStyle(self.Attendance_T_Style))

        self.elements.append(self.Score_Table)
        self.elements.append(Spacer(1, 15))
        self.elements.append(self.Attendance_Table)
        self.elements.append(PageBreak())
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def AddPage(self):
        #self.Score_Table=Table(self.Score_Data,[.3*inch]+[1*inch]+8*[0.6*inch], [.8*inch]+[.6*inch]+14*[0.35*inch])   

        self.Score_Table=Table(self.Score_Data,[.5*inch]+[(self.cW1*cm)-.5*inch]+8*[self.cW*cm], [self.rH1*cm]+[self.rH2*cm]+14*[self.rH*cm])   

        self.Attendance_Table=Table(self.Attendance_Data,[self.cW*2.2*cm]+4*[self.cW*2*cm],5*[self.rH*cm])

        self.Score_Table.setStyle(TableStyle(self.Score_T_Style))
        self.Attendance_Table.setStyle(TableStyle(self.Attendance_T_Style))

        self.elements.append(self.Score_Table)
        self.elements.append(Spacer(1, 18))
        self.elements.append(self.Attendance_Table)
        self.elements.append(PageBreak())
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def AddPage(self):
        #self.Score_Table=Table(self.Score_Data,[.3*inch]+[1*inch]+8*[0.6*inch], [.8*inch]+[.6*inch]+14*[0.35*inch])   

        self.Score_Table=Table(self.Score_Data,[.3*inch]+[(self.cW1*cm)-.3*inch]+8*[self.cW*cm], [self.rH1*cm]+[self.rH2*cm]+14*[self.rH*cm])   

        self.Attendance_Table=Table(self.Attendance_Data,[self.cW*2.2*cm]+4*[self.cW*2*cm],5*[self.rH*cm])

        self.Score_Table.setStyle(TableStyle(self.Score_T_Style))
        self.Attendance_Table.setStyle(TableStyle(self.Attendance_T_Style))

        self.elements.append(self.Score_Table)
        self.elements.append(Spacer(1, 15))
        self.elements.append(self.Attendance_Table)
        self.elements.append(PageBreak())
项目:geo-hpc    作者:itpir    | 项目源码 | 文件源码
def add_info(self):
        ptext = '<b><font size=14>Report Info</font></b>'
        self.Story.append(Paragraph(ptext, self.styles['BodyText']))
        self.Story.append(Spacer(1, 0.1*inch))

        data = [
            ['Request Name', self.request['custom_name']],
            ['Request Id', str(self.request['_id'])],
            ['Email', self.request['email']],
            ['Generated on', self.time_str()],
            ['Download Link', '<a href="http://{0}/query/#!/status/{1}">{0}/query/#!/status/{1}</a>'.format(
                self.download_server, self.request['_id'])]
        ]

        data = [[i[0], pg(i[1], 1)] for i in data]
        t = Table(data)

        t.setStyle(TableStyle([
            ('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
            ('BOX', (0,0), (-1,-1), 0.25, colors.black)
        ]))

        self.Story.append(t)



    # full request timeline / other processing info
项目:mes    作者:osess    | 项目源码 | 文件源码
def _table(self, node):
        length = 0
        colwidths = None
        rowheights = None
        data = []
        for tr in _child_get(node,'tr'):
            data2 = []
            for td in _child_get(tr, 'td'):
                flow = []
                for n in td.childNodes:
                    if n.nodeType==node.ELEMENT_NODE:
                        flow.append( self._flowable(n) )
                if not len(flow):
                    flow = self._textual(td)
                data2.append( flow )
            if len(data2)>length:
                length=len(data2)
                for ab in data:
                    while len(ab)<length:
                        ab.append('')
            while len(data2)<length:
                data2.append('')
            data.append( data2 )
        if node.hasAttribute('colWidths'):
            assert length == len(node.getAttribute('colWidths').split(','))
            colwidths = [utils.unit_get(f.strip()) for f in node.getAttribute('colWidths').split(',')]
        if node.hasAttribute('rowHeights'):
            rowheights = [utils.unit_get(f.strip()) for f in node.getAttribute('rowHeights').split(',')]
        table = platypus.Table(data = data, colWidths=colwidths, rowHeights=rowheights, **(utils.attr_get(node, ['splitByRow'] ,{'repeatRows':'int','repeatCols':'int'})))
        if node.hasAttribute('style'):
            table.setStyle(self.styles.table_styles[node.getAttribute('style')])
        return table
项目:reportlab    作者:xiaozheya    | 项目源码 | 文件源码
def rpt():
    story = []
    #??????????reportlab-userguide.pdf?chapter 6 Paragraph
    if READ_TYPE == 1:           #?????????
        rpt_title = '<para autoLeading="off" fontSize=10.5 align=center>'+Read.news_title+'<br/></para>'
        story.append(Paragraph(rpt_title, styleH))
        table_list=[]
        temp=[]
        temp.append(Read.news_author)
        temp.append(Read.news_time)
        table_list.append(temp)
        first_table = Table(table_list,colWidths=[225,225])
        first_table.setStyle(TableStyle([
        ('FONTNAME', (0, 0), (1, 0), 'msyhbd'),
        ('ALIGN', (1, 0), (1, 0), 'RIGHT'),  # ???
        ('ALIGN', (0, 0), (0, 0), 'LEFT'),
        ('FONTSIZE', (1, 2), (-1, -1), 10.5),  # ????
        ('TEXTCOLOR', (0, 0), (1, 0), colors.standardfl),
        ]))
        story.append(first_table)
        news_content_list=Read.news_content.splitlines()
        for i in range(len(news_content_list)):
            text = ''
            text += '<para autoLeading="off" fontSize=10.5 ><font face="msyh" >'
            text+=news_content_list[i]
            text +='</font></para>'
            story.append(Paragraph(text, normalStyle))
    if READ_TYPE==2:                  #??word?????????
        doc = docx.Document('test1.docx')
        length = len(doc.paragraphs)
        rpt_title = '<para autoLeading="off" fontSize=10.5 align=center>' + doc.paragraphs[0].text + '<br/></para>'
        story.append(Paragraph(rpt_title, styleH))
        rpt_title = '<para autoLeading="off" fontSize=10.5 align=right color=rgb(84,141,212)>' + doc.paragraphs[1].text + '<br/></para>'
        story.append(Paragraph(rpt_title, styleH))
        for i in range(2,length):
            text = ''
            if doc.paragraphs[i].style.name=='Heading 3' or doc.paragraphs[i].style.name=='Heading 2'or doc.paragraphs[i].style.name=='Heading 1':
                text+='<para autoLeading="off" fontSize=10.5 ><font face="msyhbd" >'
            else :
                text += '<para autoLeading="off" fontSize=10.5 ><font face="msyh" >'
            text+=doc.paragraphs[i].text
            text +='</font></para>'
            story.append(Paragraph(text, normalStyle))
        #?????????reportlab-userguide.pdf?chapter 7 Table
        table.parse_docx('test1.docx')
        component_data = table.component_data
        component_table = Table(component_data)
        component_table.setStyle(table_style.table_style)
        story.append(component_table)

    doc = SimpleDocTemplate('D:/HX/reportlab/bug1.pdf')
    doc.build(story)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def detalle(self,pdf,y,orden):
        encabezados = ('Item', 'Cantidad', u'Descripción','Precio','Total')
        p = ParagraphStyle('parrafos')
        p.alignment = TA_JUSTIFY 
        p.fontSize = 9
        p.fontName="Times-Roman"
        detalles = []
        cont = 0

        for detalle in DetalleOrdenServicios.objects.filter(orden=orden):
            try:
                descripcion = detalle.detalle_cotizacion.detalle_requerimiento.producto.descripcion
                if len(descripcion)>58:
                    cont = cont + 1
                detalles.append((detalle.nro_detalle, detalle.cantidad, Paragraph(descripcion,p), detalle.precio,detalle.valor))
            except:
                descripcion = detalle.producto.descripcion
                if len(descripcion)>58:
                    cont = cont + 1
                detalles.append((detalle.nro_detalle, detalle.cantidad, Paragraph(descripcion,p), detalle.precio,detalle.valor))

        #detalles = [(detalle.nro_detalle, detalle.cantidad, Paragraph(detalle.servicio.descripcion+'-'+detalle.descripcion,p), detalle.precio,detalle.valor) for detalle in DetalleOrdenServicios.objects.filter(orden=orden)]
        adicionales = [('','','','','')]*(15-cont-len(detalles))
        detalle_orden = Table([encabezados] + detalles + adicionales,colWidths=[0.8 * cm, 1.9 * cm, 11.3* cm, 2 * cm, 2.5 * cm])
        detalle_orden.setStyle(TableStyle(
            [
                ('ALIGN',(0,0),(4,0),'CENTER'),
                ('GRID', (0, 0), (-1, -1), 1, colors.black), 
                #('LINEBELOW', (0,1), (5,-1), 0, colors.black),                  
                ('FONTSIZE', (0, 0), (-1, -1), 8),  
                ('ALIGN',(4,1),(-1,-1),'RIGHT'),           
            ]
        ))
        detalle_orden.wrapOn(pdf, 800, 600)
        detalle_orden.drawOn(pdf, 40,y+75)
        #Letras
        total_letras = [("SON: "+ orden.total_letras,'')]
        tabla_total_letras = Table(total_letras,colWidths=[16 * cm, 2.5 * cm])
        tabla_total_letras.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (1, 0), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
            ]
        ))
        tabla_total_letras.wrapOn(pdf, 800, 600)
        tabla_total_letras.drawOn(pdf, 40,y+55)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def afectacion_presupuesta(self,pdf):
        y=320
        pdf.drawString(40, y-90, u"HOJA DE AFECTACIÓN PRESUPUESTAL:")
        p = ParagraphStyle('parrafos')
        p.alignment = TA_JUSTIFY 
        p.fontSize = 8
        p.fontName="Times-Roman"
        lista = ListFlowable([
                          Paragraph("""Consignar el número de la presente Orden de Compra en su Guía de Remisión y Factura. 
                          Facturar a nombre de """ + smart_str(EMPRESA.razon_social),p),
                          Paragraph("El " + smart_str(EMPRESA.razon_social) + """, se reserva el derecho de devolver 
                          la mercaderia, sino se ajusta a las especificaciones requeridas, asimismo de anular la presente 
                          Orden de Compra.""",p),
                          Paragraph("""El pago de toda factura se hará de acuerdo a las condiciones establecidas.""",p)
                          ],bulletType='1'
                         )
        p1=Paragraph("RECIBIDO POR: ",p)        
        pdf.drawString(330, y-150,"FIRMA: ")
        pdf.line(370, y-150, 560, y-150)
        pdf.drawString(330, y-170,"NOMBRE: ")
        pdf.line(370, y-170, 560, y-170)
        pdf.drawString(330, y-190,"DNI: ")
        pdf.line(370, y-190, 560, y-190)
        pdf.setFont("Times-Roman", 6)
        pdf.drawString(525, y-127,"FECHA")
        afectacion = [[(Paragraph("IMPORTANTE:",p), lista),"RECIBIDO POR:"]]
        tabla_afectacion = Table(afectacion,colWidths=[10 * cm, 8.50 * cm])
        tabla_afectacion.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (1, 0), 1, colors.black),
                ('VALIGN',(1,0),(1,0),'TOP'),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
            ]
        ))
        tabla_afectacion.wrapOn(pdf, 800, 600)
        tabla_afectacion.drawOn(pdf, 40,y-200)
        fecha = [[' ',' ',' ']]
        tabla_fecha = Table(fecha,colWidths=[0.6 * cm, 0.6 * cm, 0.6 * cm], rowHeights=0.6 * cm)
        tabla_fecha.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (-1, -1), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 5),                
            ]
        ))
        tabla_fecha.wrapOn(pdf, 800, 600)
        tabla_fecha.drawOn(pdf, 510,y-120)
项目:tambox    作者:joseamaya    | 项目源码 | 文件源码
def tabla_firmas(self):
        requerimiento = self.requerimiento
        solicitante = requerimiento.solicitante
        puesto_solicitante = solicitante.puesto
        p = ParagraphStyle('parrafos',
                           alignment=TA_CENTER,
                           fontSize=8,
                           fontName="Times-Roman")
        encabezados = [(u'Recepción', '', '', '', '', '')]
        oficina = requerimiento.oficina
        jefatura_logistica = self.obtener_puesto(LOGISTICA, requerimiento)
        jefe_logistica = jefatura_logistica.trabajador
        firma_solicitante = self.obtener_firma(solicitante.firma)
        firma_jefe_oficina_logistica = self.obtener_firma(jefe_logistica.firma)
        solicitante = requerimiento.solicitante.nombre_completo()
        cuerpo = [('', '', '', '', '', '')]
        if requerimiento.aprobacionrequerimiento.nivel.descripcion == "USUARIO" and requerimiento.aprobacionrequerimiento.estado:
            cuerpo = [('', firma_solicitante, '', '', '', '')]
        elif requerimiento.aprobacionrequerimiento.nivel.descripcion == "LOGISTICA" and requerimiento.aprobacionrequerimiento.estado:
            cuerpo = [(firma_jefe_oficina_logistica, firma_solicitante, '', '','', '')]

        try:
            fecha_recepcion = requerimiento.fecha_recepcion.strftime('%d/%m/%Y')
        except:
            fecha_recepcion = ''
        pie = [(Paragraph('Fecha: ' + fecha_recepcion + "<br/>" + jefe_logistica.nombre_completo(), p),
                Paragraph("Solicitado por: <br/>" + solicitante, p),
                '',
                '',
                '',
                '')]
        tabla_firmas = Table(encabezados + cuerpo + pie,
                             colWidths=[3.3 * cm, 3.3 * cm, 3.3 * cm, 3.3 * cm, 3.4 * cm, 3.4 * cm],
                             rowHeights=[0.5 * cm, 2 * cm, 1.8 * cm])
        tabla_firmas.setStyle(TableStyle(
            [
                ('GRID', (0, 0), (5, 2), 1, colors.black),
                ('FONTSIZE', (0, 0), (-1, -1), 8),
                ('ALIGN', (0, 0), (-1, -1), 'LEFT'),
                ('ALIGN', (0, 1), (5, 1), 'CENTER'),
                ('ALIGN', (0, 2), (5, 2), 'CENTER'),
                ('VALIGN', (0, 0), (-1, -1), 'TOP'),
            ]
        ))
        return tabla_firmas
项目:infonex_crm    作者:asterix135    | 项目源码 | 文件源码
def call_report(request):
    event_assignment = get_object_or_404(EventAssignment,
                                         pk=request.session['assignment_id'])
    event = event_assignment.event
    user = request.user
    contact_history = Contact.objects.filter(
        event=event, author=user
    ).order_by('-date_of_contact')
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'inline; filename="call_report.pdf"'
    buffr = BytesIO()

    styles = getSampleStyleSheet()
    cell_style = styles['BodyText']
    cell_style.alignment = TA_LEFT

    report_details = []
    title = Paragraph('Call Note Report', styles['title'])
    report_details.append(title)
    conf_details_text = event.number + ': ' + event.title + ' (' \
        + user.username+ ')'
    report_details.append(Paragraph(conf_details_text, styles['h2']))
    report = SimpleDocTemplate(buffr, pagesize=letter,
                               leftMargin=inch/2, rightMargin = inch/2)
    data = []
    for contact in contact_history:
        person = contact.person.name
        if contact.person.title:
            person = person + '<br/>' + contact.person.title
        if contact.person.company:
            person = person + '<br/>' + contact.person.company
        date = Paragraph(str(contact.date_of_contact.date()), cell_style)
        person = Paragraph(person, cell_style)
        notes = Paragraph(contact.notes[:3500], cell_style)
        data.append([date, person, notes])
        table = Table(data, [inch, 3 * inch, 4.5 * inch])
        table.setStyle(TableStyle([('VALIGN', (0,0), (-1, -1), 'TOP')]))
        report_details.append(table)
        data = []
    # if len(data) > 0:
    #     call_detail_table = Table(data, [inch, 2 * inch, 4.5 * inch])
    #     call_detail_table.setStyle(TableStyle([('VALIGN', (0,0),
    #                                             (-1, -1), 'TOP')]))
    #     report_details.append(call_detail_table)


    report.build(report_details)

    pdf = buffr.getvalue()
    buffr.close()
    response.write(pdf)
    return response
项目:smartschool    作者:asifkodur    | 项目源码 | 文件源码
def SetTable_Style(self):

        #Starts Score Table
        self.Score_T_Style=[('BOX',(0,0),(-1,-1),1.7,colors.black),

                                ('GRID',(0,0),(-1,-1),1,colors.black),#

                                ('VALIGN',(0,0),(-1,-1),'MIDDLE'),
                                ('FONTname',(0,0),(-1,-1),'Helvetica-Bold'),
                                ('SPAN',(0,0),(-1,0)), # SCHOOL
                                ('ALIGN',(0,0),(-1,0),'CENTER'),
                                ('SPAN',(0,1),(-1,1)), # PERFORMANCE CARD OF
                                ('SPAN',(0,2),(4,2)),   #ADM NOO
                                ('SPAN',(5,2),(-1,2)),  # YEAR
                                ('ALIGN',(2,0),(3,-1),'LEFT'),
                                ('SPAN',(0,3),(4,3)), # ROLL NO
                                ('SPAN',(5,3),(-1,3)),   #CLASS    
                                ('SPAN',(0,4),(0,5)),     #SUBJECT LABEL  
                                ('SPAN',(1,4),(4,4)),       #TERM1
                                ('ALIGN',(1,4),(4,4),'CENTER'),
                                ('SPAN',(5,4),(-1,4)),      #TERM2
                                ('ALIGN',(5,4),(-1,4),'CENTER'),
                                ('BOX',(1,4),(4,-1),1.5,colors.black),
                                ('BOX',(5,4),(-1,-1),1.5,colors.black),
                                ('ALIGN',(2,5),(-1,5),'CENTER'), 
                                ('ALIGN',(1,6),(-1,-1),'CENTER')
                                ]
        #End of Score Table                        

        #Starts Attendance Tabke style
        self.Attendance_T_Style=[('GRID',(0,0),(-1,-1),1,colors.black),
                                            ('VALIGN',(0,0),(-1,-1),'MIDDLE'),

                                            ('SPAN',(0,0),(0,1)),

                                            ('SPAN',(1,2),(2,2)),
                                            ('SPAN',(3,2),(4,2)),

                                            ('SPAN',(1,3),(2,3)),
                                            ('SPAN',(3,3),(4,3)),

                                            ('SPAN',(1,4),(2,4)),
                                            ('SPAN',(3,4),(4,4)),

                                            ('BOX',(0,0),(-1,-1),2,colors.black)]

        #end of Attendance Table Style