Esempio n. 1
0
 def get(self, request, formulario_id, *args, **kwargs):
     print("hola")
     if request.user.is_authenticated:
         userdjango = request.user.get_username()
         response = HttpResponse(content_type='application/pdf')
         #La clase io.BytesIO permite tratar un array de bytes como un fichero binario, se utiliza como almacenamiento temporal
         buffer = BytesIO()
         #Canvas nos permite hacer el reporte con coordenadas X y Y
         pdf = canvas.Canvas(buffer)
         doc = SimpleDocTemplate(
             buffer,
             pagesize=landscape(letter),
             rightMargin=inch / 2,  #40
             leftMargin=inch / 2,  #40
             topMargin=inch / 2,  #60
             bottomMargin=inch / 2,  #18
         )
         #Llamo al método cabecera donde están definidos los datos que aparecen en la cabecera del reporte.
         doc.sample_no = 3
         y = 10
         #Con show page hacemos un corte de página para pasar a la siguiente
         pdf.drawString(
             510, 820,
             "Pagina %d de %d" % ((doc.sample_no - 2), doc.sample_no))
         self.tabla(pdf, doc, y, userdjango, formulario_id)
         pdf.showPage()
         pdf.drawString(
             510, 820,
             "Pagina %d de %d" % ((doc.sample_no - 1), doc.sample_no))
         self.tablacuadro(pdf, doc, y, userdjango, formulario_id)
         #  pdf.showPage()
         pdf.drawString(510, 820,
                        "Pagina %d de %d" % (doc.sample_no, doc.sample_no))
         self.sellos(pdf, doc)
         pdf.save()
         pdf = buffer.getvalue()
         buffer.close()
         response.write(pdf)
         return response
     else:
         return None