#encoding:utf-8 from reportlab.pdfgen import canvas from django.http import HttpResponse from bienes.models import * from django.template import RequestContext from django.shortcuts import render_to_response from reportlab.pdfgen.canvas import Canvas from reportlab.lib.pagesizes import letter, landscape, A4 from reportlab.lib.units import cm, mm, inch, pica from reportlab.lib.enums import TA_JUSTIFY, TA_RIGHT, TA_LEFT, TA_CENTER from reportlab.platypus import Table, TableStyle, SimpleDocTemplate,PageTemplate, Paragraph, Spacer, Image from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle import os def consulta(request): s = None response = HttpResponse(mimetype='application/pdf') #response['Content-Disposition'] = 'attachment;filename=Reporte.pdf' estilo=getSampleStyleSheet() elements = [] doc = SimpleDocTemplate(response,pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=5*cm,bottomMargin=5*cm) data = [] h1=estilo['h1'] estilo.add( ParagraphStyle( name = 'Centrado' ) ) Centrado = estilo["Centrado"] Centrado.alignment = TA_CENTER Centrado.fontName = "Helvetica" Centrado.fontSize = 10 # logo = Paragraph('', h1) # elements.append(logo) P=Paragraph("GOBIERNO DEL ESTADO DE TABASCO",Centrado) elements.append(P) P=Paragraph("SERVICIO ESTATAL DE ADMINISTRACION DE BIENES ASEGURADOS",Centrado) elements.append(P) P=Paragraph("DIRECCION GENERAL DE BIENES ASEGURADOS",Centrado) elements.append(P) elements.append(Spacer(0,30)) # foto = Image('/static/images/logo_tabasco.png') data=[['Fecha','Averiguacion','Autoridad','Oficio','Entrega', 'Propietario', 'Estado', 'Tipo', 'Descripcion','Situacion','Devolucion']] if request.GET: fecha = request.GET.get('de') fecha1 = request.GET.get('de1') try: s = Bienes.objects.filter(fecha__range=(fecha, fecha1)) for p in s: data.append([p.fecha, p.numero_averiguacion, p.autoridad, p.numero_oficio, p.persona_entrega, p.propietario, p.calidad_bien, p.tipo_bien.nombre_corto, p.descripcion, p.situacion_juridica, p.fecha_devolucion]) t_datos = Table(data, style=[('GRID',(0,0),(-1,-1),0.5,colors.grey), ('FONTSIZE',(0,1),(-1,-1),7), ('ALIGN',(0,0),(1,1),'CENTER'), #('BACKGROUND',(1,0),(-1,-1),colors.red), ]) elements.append(t_datos) doc.build(elements) except Exception, e: pass return response from reportlab.rl_config import defaultPageSize import locale PAGE_HEIGHT=defaultPageSize[1]; PAGE_WIDTH=defaultPageSize[0] Title = '' pageinfo = "" def consulta_todo(request): s = None response = HttpResponse(mimetype='application/pdf') #response['Content-Disposition'] = 'attachment;filename=Reporte.pdf' estilo=getSampleStyleSheet() elements = [] doc = SimpleDocTemplate(response,pagesize=landscape(A4), rightMargin=5*mm,leftMargin=5*mm, topMargin=2.5*cm,bottomMargin=3*cm) data = [] h1=estilo['h1'] estilo.add( ParagraphStyle( name = 'Centrado' ) ) Centrado = estilo["Centrado"] Centrado.alignment = TA_CENTER Centrado.fontName = "Helvetica" Centrado.fontSize = 10 estilo.add( ParagraphStyle (name = 'Justificado') ) Justificado = estilo['Justificado'] Justificado.alignment = TA_JUSTIFY Justificado.fontName = "Helvetica" Justificado.fontSize = 7 # logo = Paragraph('', h1) # elements.append(logo) # P=Paragraph("GOBIERNO DEL ESTADO DE TABASCO",Centrado) # elements.append(P) # P=Paragraph("SERVICIO ESTATAL DE ADMINISTRACION DE BIENES ASEGURADOS",Centrado) # elements.append(P) # elements.append(Spacer(0,40)) # foto = Image('/static/images/logo_tabasco.png') data=[[ 'Fecha', 'Averiguacion', 'Autoridad', 'Oficio', 'Entrega', 'Propietario', 'Estado', 'Tipo', 'Descripcion', 'Situacion', 'Devolucion']] s = Bienes.objects.all() for p in s: data.append([ p.fecha, Paragraph(p.numero_averiguacion, Justificado ), p.autoridad, p.numero_oficio, p.persona_entrega, Paragraph(p.propietario, Justificado ), p.calidad_bien.calidad_bien[0:2], p.tipo_bien.tipo_bien[0:1], Paragraph(p.descripcion, Justificado ), Paragraph(p.situacion_juridica, Justificado ), p.fecha_devolucion ]) # elements.append(foto) # elements.append(ted) t_datos = Table(data, [1.5 * cm, 3 * cm, 1.8* cm, 3* cm, 4* cm, 3.5* cm, 2* cm, 1.5* cm, 3.5* cm, 3* cm, 2* cm], repeatRows=1, style=[('GRID',(0,0),(-1,-1),0.5,colors.grey), ('FONTSIZE',(0,1),(-1,-1),7), ('ALIGN',(0,0),(-1,0),'CENTER'), ('',(0,0),(-1,0),'CENTER'), ('BACKGROUND',(0,0),(-2,-2),colors.red), # ('INNERGRID', (0,0), (-1,-1), 0.25, colors.red), ] ) t_datos.hAlign = 'LEFT' elements.append(t_datos) def myFirstPage(canvas, doc): canvas.saveState() canvas.drawImage('static/images/seaba.png',1*cm,535, 219, 58) canvas.setFont('Helvetica',12) canvas.drawString(4.5*cm, 2 * cm, "Sr. José Antonio Rojas Calderón") canvas.setFont('Helvetica',12) canvas.drawString(4*cm, 1.5 * cm, "Jefe de Depto. de Bienes Asegurados") canvas.setFont('Helvetica',12) canvas.drawString(20.5*cm, 2 * cm, "Lic. Pedro Sanchez Sibaja") canvas.setFont('Helvetica',12) canvas.drawString(20*cm, 1.5 * cm, "Dir. Gral. de Bienes Asegurados") canvas.setFont('Helvetica',9) canvas.drawString(27*cm, .25 * inch, "Página %d" % (doc.page)) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() canvas.drawImage('static/images/seaba.png',1*cm,535, 219, 58) canvas.setFont('Helvetica',12) canvas.drawString(4.5*cm, 2 * cm, "Sr. José Antonio Rojas Calderón") canvas.setFont('Helvetica',12) canvas.drawString(4*cm, 1.5 * cm, "Jefe de Depto. de Bienes Asegurados") canvas.setFont('Helvetica',12) canvas.drawString(20.5*cm, 2 * cm, "Lic. Pedro Sanchez Sibaja") canvas.setFont('Helvetica',12) canvas.drawString(20*cm, 1.5 * cm, "Dir. Gral. de Bienes Asegurados") canvas.setFont('Helvetica',9) canvas.drawString(27*cm, .25 * inch, "Página %d %s" % (doc.page, pageinfo)) canvas.restoreState() doc.build(elements, onFirstPage = myFirstPage, onLaterPages = myLaterPages) return response