2011-01-13 14 views
5

के साथ Django पीडीएफ प्रश्न मैं पीसा का उपयोग कर एक पीडीएफ फ़ाइल में एक HTML टेम्पलेट जेनरेट करना चाहता हूँ। मेरा मानना ​​है कि मेरे पास आवश्यक सभी पैकेज हैं लेकिन मुझे ऐसा करने में समस्याएं आ रही हैं। यहां मेरे दृश्य को से नीचे दिया गया है जो मैंने किया है।पीजा

संपादित करें: मेरा नवीनतम यूआरएल, विचार & टेम्पलेट है।

url.py

(r'^index/render_pdf/(?P<id>\d+)/$', render_pdf), 

views.py

def fetch_resources(uri, rel): 
    path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, "")) 
    return path 

def render_pdf (html, id): 
    invoice_items_list = Invoice_Items.objects.filter(pk=id) 
    result = StringIO.StringIO() 
    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), dest=result, link_callback=fetch_resources) 
    return result 

एक टेम्पलेट में, मैं इस टैग की है।

<a href="{% url c2duo.views.render_pdf invoices.pk %}"> 
+0

, तो आप पूर्ण त्रुटि ट्रैस बैक या व्यवहार आपको हो रही हो और में जोड़ने प्रश्न, ताकि सभी लोग देख सकें कि जब आप इसे इस तरह से आजमाते हैं तो क्या होता है। – nosklo

+0

'render_to_pdf (template_src, context_dict) 'में कोई' वापसी 'नहीं है। क्या आप वास्तव में उपयोग किए जा रहे वास्तविक कोड को शामिल कर सकते हैं? –

+0

कोड – Shehzad009

उत्तर

1

मैं जानता हूँ कि यह कितना मदद मिलेगी नहीं है, लेकिन इस समारोह मैं पीडीएफ रेंडर करने के लिए उपयोग करते हैं: अगले

def fetch_resources(uri, rel): 
""" 
Callback to allow pisa/reportlab to retrieve Images,Stylesheets, etc. 
`uri` is the href attribute from the html link element. 
`rel` gives a relative path, but it's not used here. 

""" 
path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, "")) 
return path 

def render_pdf (html): 
result = StringIO.StringIO() 
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), dest=result, link_callback=fetch_resources) 
return result 
+0

मुझे एक त्रुटि मिलती है: WSGIRequest 'ऑब्जेक्ट में कोई विशेषता नहीं है' एन्कोड ' – Shehzad009

+0

आप अनुरोध ऑब्जेक्ट को फ़ंक्शन पर पास नहीं करते हैं, तो आप प्रस्तुत टेम्पलेट पास करते हैं। – zsquare

+0

कृपया मेरे कोड को अभी तक देखें कि संपादन द्वारा किसी भी बदलाव की आवश्यकता है या नहीं। – Shehzad009

0

बस मस्ती के लिए, ऐसा करें:

def render_to_pdf(template_src, context_dict): 
    html = "<html><head><title>Title</title></head><body><h1>Hello</h1></body></html>" 
    result = StringIO.StringIO() 
    pdf = pisa.pisaDocument(StringIO.StringIO(html), result) 
    if not pdf.err: 
     return http.HttpResponse("" % (repr(result.getvalue()))) 
    else: 
     raise Exception("The error was %s" % pdf.err) 

आपको अभी भी त्रुटि का सामना करते हैं, मैं त्रुटि पीसा में हो सकता है अनुमान लगा रहा हूँ। क्या आप वाकई अद्यतित हैं?

+0

दोहराना अद्यतन किया गया है, मुझे अंतिम पंक्ति पर एक अमान्य वाक्यविन्यास त्रुटि मिलती है "अपवाद ('पीडीएफ त्रुटि') को छोड़कर" - इसलिए सुनिश्चित नहीं है कि क्यों। इसके अलावा, लाइन पर एक और वाक्यविन्यास त्रुटि में एक वाक्यविन्यास त्रुटि है जहां यह कहता है कि क्या पीडीएफ = ... एक अतिरिक्त क्लोज़ ब्रैकेट है जो वहां नहीं होना चाहिए। – Shehzad009

+0

क्षमा करें, मैं एक अजनबी के कोड से कट और चिपकाने के लिए यही मिलता हूं। अब तय किया जाना चाहिए। –

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

  • कोई संबंधित समस्या नहीं^_^