In ReportLab, Disegno oggetto può essere scritto in diversi renderer, ad esempioDjango ReportLab: utilizzando oggetto di disegno per creare PDF e restituire via HttpResponse
d = shapes.Drawing(400, 400)
renderPDF.drawToFile(d, 'test.pdf')
e in Django, oggetto Canvas può essere inviato via HttpResponse, ad esempio:
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'filename=test.pdf'
c = canvas.Canvas(response)
nel mio caso, il mio problema è che ho uno script utilizzando ReportLab oggetto di disegno che salva al file system locale. Ora lo metto nelle viste di Django e mi chiedo se esiste un modo per non salvare sul file system locale, ma che invece viene inviato al client.
Spero di descrivere chiaramente questa domanda.
Grazie per qualsiasi consiglio!
aggiornamenti
risulta là è una funzione in renderPDF:
renderPDF.draw(drawing, canvas, x, y)
che possono rendere disegno) oggetto della proposta tela (.
grazie! ma penso che tu abbia frainteso la mia domanda, o non ho detto molto chiaramente. So come farlo usando Canvas object, sto cercando un modo per inserire l'oggetto Drawing() in httpresponse. – Simon
così posso capire l'esempio che hai dato come: d = Disegno (400, 400), e poi: pdf = buffer.getvalue() buffer.close() e infine: response.write (pdf)? – Simon
non funziona con Drawing(). la tela va bene. nel tuo esempio, c'è un errore di battitura: buffer <-> tmp – Simon