En ReportLab, objeto de dibujo se puede escribir en distintos procesadores, por ejemploDjango ReportLab: de acuerdo al objeto de dibujo para crear PDF y volver a través de HTTPResponse
d = shapes.Drawing(400, 400)
renderPDF.drawToFile(d, 'test.pdf')
y en Django, objeto Canvas se puede enviar por HttpResponse, por ejemplo:
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'filename=test.pdf'
c = canvas.Canvas(response)
en mi caso, mi problema es que tengo un script usando ReportLab objeto de dibujo que ahorra al sistema de archivos local. Ahora lo pongo en las vistas de Django, y me pregunto si hay una manera de no guardar en el sistema de archivos local, sino que se lo devuelvo al cliente.
Espero que describa esta pregunta con claridad.
¡Gracias por cualquier consejo!
actualizaciones
resulta que hay una función en renderPDF:
renderPDF.draw(drawing, canvas, x, y)
que puede hacer que el objeto de dibujo() en el lienzo dado.
gracias! pero creo que malinterpretaste mi pregunta, o no dije muy claramente. Sé cómo hacer esto utilizando el objeto Canvas, estoy buscando una forma de poner el objeto Drawing() en httpresponse. – Simon
entonces, ¿puedo entender la muestra que proporcionó como: d = Dibujo (400, 400) y luego: pdf = buffer.getvalue() buffer.close(), y finalmente: response.write (pdf)? – Simon
no funciona con Dibujo(). lienzo está bien. en su ejemplo, hay un error tipográfico: buffer <-> tmp – Simon