在ReportLab的,圖形對象可以被寫入不同的渲染器返回,例如Django的ReportLab的:使用圖形對象來創建PDF和經由的HttpResponse
d = shapes.Drawing(400, 400)
renderPDF.drawToFile(d, 'test.pdf')
和在Django,畫布對象能夠通過的HttpResponse,例如發送:
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'filename=test.pdf'
c = canvas.Canvas(response)
在我的情況,我的問題是,我使用繪圖對象,它保存到本地文件系統有ReportLab的腳本。我現在把它放在Django視圖中,並且想知道是否有一種方法不保存到本地文件系統,而是發送回客戶端。
我希望我清楚地描述這個問題。
感謝您的任何建議!
更新
原來有一個函數在renderPDF:
renderPDF.draw(drawing, canvas, x, y)
其可呈現在給定的畫布繪製()對象。
謝謝!但我認爲你誤解了我的問題,或者我沒有說得很清楚。我知道如何使用Canvas對象執行此操作,我正在尋找一種將Drawing()對象放入httpresponse中的方法。 – Simon 2012-03-24 05:20:01
所以我可以理解你給的例子:d = Drawing(400,400),然後:pdf = buffer.getvalue()buffer.close(),最後是:response.write(pdf)? – Simon 2012-03-24 05:21:26
它不適用於Drawing()。帆布很好。在你的例子中,有一個錯字:buffer <-> tmp – Simon 2012-03-24 05:34:12