7

मैं एक विधि है कि Reportlab लाइब्रेरी का उपयोग कर एक पीडीएफ फाइल उत्पन्न करता है:App इंजन पायथन में डेटास्टोर में Reportlab साथ उत्पन्न पीडीएफ को बचाने के लिए कैसे

def obtenerPDFNuevoPedido(self, handler,rsUsuarioPedido, rsPedido): 
    handler.response.headers['Content-Type'] = 'application/pdf' 
    handler.response.headers['Content-Disposition'] = 'attachment; filename=output.pdf' 
    story = [] 
    story.append(Paragraph('CHIPAS', ParagraphStyle(name="centeredStyle", alignment=TA_CENTER, fontSize=20))) 
    story.append(Paragraph('____________ENLANUBE', ParagraphStyle(name="centeredStyle", alignment=TA_CENTER, fontSize=20))) 
    story.append(Spacer(6, 22)) 
    story.append(Table([[Paragraph(str(strftime("%Y-%m-%d", gmtime())), ParagraphStyle(name="centeredStyle", alignment=TA_LEFT, fontSize=7)), 
    Paragraph(str(strftime("%H:%M:%S", gmtime())), ParagraphStyle(name="centeredStyle", alignment=TA_RIGHT, fontSize=7))]],colWidths=[5.05 * cm, 3.1 * cm])) 
    story.append(Paragraph("DEVELOPED AT ROSHKA-LABS", ParagraphStyle(name="centeredStyle", alignment=TA_CENTER, fontSize=6))) 
    story.append(Paragraph('-'*50, styleCentered)) 
    #... 
    #... 
    doc = SimpleDocTemplate(handler.response.out, pagesize=letter) 
    doc.build(story) 

जब मुझे लगता है कि विधि कॉल, यह एक संवाद सहेज सकते हैं, जहां मैं निर्दिष्ट कर सकते हैं कि फ़ाइल कहाँ सहेजी जानी चाहिए।

डेटास्टोर में जेनरेट की गई पीडीएफ फ़ाइल को सहेजने के लिए मैं कितना जोरदार हूं?

अग्रिम धन्यवाद!

उत्तर

8

1) आप केवल वांछित फ़ाइल नाम (नहीं गंतव्य)

2 निर्दिष्ट कर सकते हैं) इस (परीक्षण नहीं) प्रयास करें

#define your database structure 
from google.appengine.ext import db 

class PdfStorage(db.Model): 
    timeAdded = db.DateTimeProperty(auto_now_add=True) 
    pdfContent = db.BlobProperty() 

के साथ अपने

doc = SimpleDocTemplate(handler.response.out, pagesize=letter) 
doc.build(story) 

बदलें

pdf = StringIO() 


doc = SimpleDocTemplate(pdf, pagesize=letter) 
doc.build(story) 

#get content of generated pdf 
content = pdf.getvalue() 

#save to db 
pdfStorage = PdfStorage(pdfContent = content); 
pdfStorage.put() 

#output to browser 
handler.response.write(content) 
+1

धन्यवाद russenreaktor! मैंने आपके उत्तर की दो पंक्तियां संपादित की हैं =)। यह आकर्षण की तरह काम करता है! – Lucas

संबंधित मुद्दे