2011-05-26 9 views
5

ReportLab पर तैयार की है की छवि बाहर आ रहा है निम्नलिखित कोड का टुकड़ा के साथ पीडीएफ कैनवास पर नजर आता:ReportLab छवि "canvas.Canvas

from reportlab.pdfgen import canvas 
from reportlab.platypus import Image 

pdf = canvas.Canvas(filename, bottomup=0) 

logo_image = Image(
    "%s/images/wsp_logo.jpg" % settings.STATIC_ROOT, 
    width=200, 
    height=200) 
logo_image.drawOn(pdf, 100, 100) 

यह कैसे तैयार की है करने के लिए 'सामान्य रूप से', के रूप में एक यह देखने की अपेक्षा करेंगे

उत्तर

3

मैं इस समय परीक्षण नहीं कर सकते, लेकिन यह Canvas वस्तु की अपनी रचना में bottomup = 0 की वजह से संभवतः है डिफ़ॉल्ट 1 है documentation से:।।

निचला तर्क तर्क समन्वय प्रणाली स्विच करता है। पेज के निचले बाएं हिस्से में कुछ ग्राफिक्स सिस्टम (जैसे पीडीएफ और पोस्टस्क्रिप्ट) स्थान (0,0) अन्य (जैसे कई ग्राफिकल यूजर इंटरफेस [जीयूआई]] मूल को बाईं ओर स्थित करते हैं। bottomup तर्क रहेगी तथा इसे भविष्य

आवश्यकता में गिरा दिया जा सकता है अगर यह वास्तव में सभी कार्यों के लिए काम करता है देखने के लिए, और अगर फिर इसे से छुटकारा पाने के नहीं

कि बोली में चेतावनी को देखते हुए, मेरा अनुमान है यह 0 पर सेट करने से समस्या का स्रोत है।

+0

आप सही हैं, ऐसा इसलिए है क्योंकि नीचे की ओर 0 को सेट किया गया है – sepulchered

+2

'bottomtop' को 0 पर सेट करते समय इसे ठीक करने के तरीके पर कोई विचार? – Voles

4

छवि को फ़्लिप करने के लिए canvas.scale फ़ंक्शन का उपयोग करें।

canvas.saveState() 
canvas.translate(x, y) 
canvas.scale(1,-1) 
canvas.drawImage(img_path, 0, 0, width=-width, height=-height, mask='auto') 
canvas.restoreState() 
0

निचले बाएं कोने पर मूल बिंदु (0,0) के साथ चित्र खींचने के लिए।

canvas.saveState() 
canvas.transform(1, 0, 0, -1, 0, H) 
draw_your_picture_code() 
canvas.restoreState() 

H पृष्ठ की ऊंचाई है।