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