2012-10-29 15 views
5

का उपयोग कर एक पीडीएफ फ़ाइल में एकाधिक qr कोड जेनरेट करें रिपोर्टलैब का उपयोग करके, मैं qr कोड की श्रृंखला कैसे उत्पन्न कर सकता हूं और उन्हें एक पीडीएफ में डाल सकता हूं और फिर इसे उपयोगकर्ता ब्राउज़र पर खोल सकता हूं। मेरा प्रयास यहाँ है। अग्रिम में धन्यवाद। नीचे दिए गए कोड के लिए, कुछ भी नहीं होता है। मुझे पीडीएफ फ़ाइल को सहेजने के लिए कहा जाने की उम्मीद थी।reportlab और django फ्रेमवर्क

from reportlab.pdfgen import canvas 
from django.http import HttpResponse 
from reportlab.graphics.shapes import Drawing 
from reportlab.graphics.barcode.qr import QrCodeWidget 
from reportlab.graphics import renderPDF 
# Create the HttpResponse object with the appropriate PDF headers. 
response = HttpResponse(mimetype='application/pdf') 
response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' 

p = canvas.Canvas(response) 

qrw = QrCodeWidget('Helo World!') 
b = qrw.getBounds() 

w=b[2]-b[0] 
h=b[3]-b[1] 

d = Drawing(45,45,transform=[45./w,0,0,45./h,0,0]) 
d.add(qrw) 

renderPDF.draw(d, p, 1, 1) 

p.showPage() 
p.save() 
return response 
+0

के माध्यम से पढ़ने का सुझाव देता हूं क्या आप अपनी कठिनाइयों का अधिक विशिष्ट तरीके से वर्णन कर सकते हैं? आपका कोड सही/गलत क्या करता है, जहां आपको वास्तव में कठिनाइयों आदि हैं। – Rytmis

उत्तर

4

आपका कोड मेरे लिए काम करता है, हालांकि मुझे संदेह है कि ऐसा इसलिए है क्योंकि आपने इसे एक दृश्य में नहीं बनाया है?

उदाहरण के लिए, MyApp/views.py

from reportlab.pdfgen import canvas 
from django.http import HttpResponse 
from reportlab.graphics.shapes import Drawing 
from reportlab.graphics.barcode.qr import QrCodeWidget 
from reportlab.graphics import renderPDF 


# Create your views here. 
def test_qr(request): 
    # Create the HttpResponse object with the appropriate PDF headers. 
    response = HttpResponse(mimetype='application/pdf') 
    response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' 

    p = canvas.Canvas(response) 

    qrw = QrCodeWidget('Helo World!') 
    b = qrw.getBounds() 

    w=b[2]-b[0] 
    h=b[3]-b[1] 

    d = Drawing(45,45,transform=[45./w,0,0,45./h,0,0]) 
    d.add(qrw) 

    renderPDF.draw(d, p, 1, 1) 

    p.showPage() 
    p.save() 
    return response 

MyProject/urls.py

from django.conf.urls.defaults import patterns, include, url 

urlpatterns = patterns('', 
    url(r'^$', 'myapp.views.test_qr'), 
) 

अपने ब्राउज़र खुलने का कहना है, http: 127.0.0.1: 8000 मुझे पीडीएफ डाउनलोड करने के लिए संकेत देता है नीचे बाएं कोने पर एक क्यूआर कोड के साथ प्रस्तुत किया। यदि आप सुनिश्चित नहीं हैं कि Django का उपयोग कैसे करें, तो मैं Django Book Online

+0

मुझे लगता है कि उनका ब्राउज़र अनुकूलता समस्या है। फ़ायरफ़ॉक्स में काम करता है लेकिन क्रोम में नहीं है (15) – user1783848

+1

मुझे काम करने के उदाहरण के लिए 'HttpResponse (mimetype =' application/pdf ') '' httpResponse (content_type =' application/pdf ')' को बदलना था – bjesus

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