2012-05-25 15 views
8

मैं चित्रों को पीडीएफ फ़ाइल में रखना चाहता हूं। मेरा कोड निम्नानुसार है ...img = image.open (fp) विशेषताएँ त्रुटि: कक्षा छवि में कोई विशेषता नहीं है 'खुला'

import sys 
import xlrd 
from PIL import Image 
import ImageEnhance 
from reportlab.platypus import * 
from reportlab.lib.styles import getSampleStyleSheet 
from reportlab.rl_config import defaultPageSize 
PAGE_HEIGHT=defaultPageSize[1] 

styles = getSampleStyleSheet() 

Title = "Integrating Diverse Data Sources with Gadfly 2" 

Author = "Aaron Watters" 

URL = "http://www.chordate.com/" 

email = "[email protected]" 

from reportlab.lib.units import inch 

pageinfo = "%s/%s/%s" % (Author, email, Title) 

def myFirstPage(canvas, doc): 
    canvas.saveState() 
    #canvas.setStrokeColorRGB(1,0,0) 
    #canvas.setLineWidth(5) 
    #canvas.line(66,72,66,PAGE_HEIGHT-72) 
    canvas.setFont('Times-Bold',16) 
    canvas.drawString(108, PAGE_HEIGHT-108, Title) 
    canvas.setFont('Times-Roman',9) 
    canvas.drawString(inch, 0.75 * inch, "First Page/%s" % pageinfo) 
    canvas.restoreState() 

def myLaterPages(canvas, doc): 
    #canvas.drawImage("snkanim.gif", 36, 36) 
    canvas.saveState() 
    #canvas.setStrokeColorRGB(1,0,0) 
    #canvas.setLineWidth(5) 
    #canvas.line(66,72,66,PAGE_HEIGHT-72) 
    canvas.setFont('Times-Roman',9) 
    canvas.drawString(inch, 0.75 * inch, "Page %d %s" % (doc.page, pageinfo)) 
    canvas.restoreState() 

def go(): 
    Elements.insert(0,Spacer(0,inch)) 
    doc = SimpleDocTemplate('ss.pdf') 
    doc.build(Elements,onFirstPage=myFirstPage, onLaterPages=myLaterPages) 

Elements = [] 

HeaderStyle = styles["Heading1"] # XXXX 

def header(txt, style=HeaderStyle, klass=Paragraph, sep=0.3): 
    s = Spacer(0.2*inch, sep*inch) 
    Elements.append(s) 
    para = klass(txt, style) 
    Elements.append(para) 

ParaStyle = styles["Normal"] 

def p(txt): 
    return header(txt, style=ParaStyle, sep=0.1) 

def open_excel(file= 'exc.xls'): 
    try: 
     data = xlrd.open_workbook(file) 
     return data 
    except Exception,e: 
     print str(e) 

#pre = p # XXX 

PreStyle = styles["Code"] 

def pre(txt): 
    s = Spacer(0.1*inch, 0.1*inch) 
    Elements.append(s) 
    p = Preformatted(txt, PreStyle) 
    Elements.append(p) 
p("""\ 
Relational databases manipulate and store persistent 
table structures called relations, such as the following 
three tables""") 

fp = open("/pdf-ex/downloadwin7.png","rb") 
img = Image.open(fp) 
img.show() 
# HACK 
Elements.append(PageBreak()) 


go() 
+0

हमें यहां बताएं कि आप अटक गए हैं और हमें समस्या का प्रदर्शन करने वाले कोड की सबसे छोटी राशि दें। – kindall

उत्तर

14

आपके पास नामस्थान संघर्ष है। आपके आयात विवरणों में से एक Image नामक कुछ वर्ग के साथ PIL.Image (जो एक मॉड्यूल है, कक्षा नहीं है) मास्किंग है।

बजाय

...

from PIL import Image 

कोशिश ...

import PIL.Image 

फिर बाद में अपने कोड में ...

fp = open("/pdf-ex/downloadwin7.png","rb") 
img = PIL.Image.open(fp) 
img.show() 

जब आयात का एक बहुत साथ काम करना, नामस्थान संघर्ष से सावधान रहें। मैं आम तौर पर from some_module import * बयान से बहुत सावधान हूं।

आपकी परियोजना और खुश कोडिंग के साथ शुभकामनाएं।

+0

आपकी टिप्पणी के लिए धन्यवाद। कार्यक्रम चलाने में कोई गलती नहीं है। लेकिन तस्वीर खोला नहीं जा सका। – wangling

+0

तस्वीर को पीडीएफ फाइल – wangling

+0

में दिखाया नहीं जा सका, मैंने आपके पोस्ट के शीर्षक द्वारा वर्णित समस्या को हल करने के समाधान को हल किया है। .pdf फ़ाइल में छवियों को जोड़ने की समग्र समस्या के रूप में, मैं उत्तर देने के लिए आवश्यक जानकारी के रूप में उत्तर नहीं दे सकता हूं, जो पोस्ट में प्रस्तुत किए गए FAR से परे है। हालांकि, रिपोर्टलैब के मेरे कर्सर ज्ञान से, मुझे लगता है कि आप सही रास्ते पर हैं। इस पर काम करते रहें और जल्द ही आप इसे हल कर लेंगे। – parselmouth

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

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