ReportLab में, ड्राइंग वस्तु विभिन्न दाता में लिखा जा सकता है के माध्यम से वापस जाने के लिए, जैसेDjango ReportLab: आरेखण ऑब्जेक्ट का उपयोग पीडीएफ बना सकते हैं और 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)
जो ड्राइंग() दिए गए कैनवास में वस्तु प्रदान कर सकते हैं।
धन्यवाद! लेकिन मुझे लगता है कि आपने मेरे प्रश्न को गलत समझा, या मैंने बहुत स्पष्ट रूप से नहीं कहा। मुझे पता है कि कैनवास ऑब्जेक्ट का उपयोग करके इसे कैसे किया जाए, मैं httpresponse में Drawing() ऑब्जेक्ट डालने का एक तरीका ढूंढ रहा हूं। – Simon
तो क्या मैं आपके द्वारा दिए गए नमूने को समझ सकता हूं: डी = ड्राइंग (400, 400), और फिर: पीडीएफ = buffer.getvalue() buffer.close(), और अंत में: response.write (पीडीएफ)? – Simon
यह ड्राइंग() के साथ काम नहीं करता है। कैनवास ठीक है। आपके उदाहरण में, एक टाइपो है: बफर <-> tmp – Simon