2017-02-15 47 views
0

我想繪製一個jpg圖像上的字符串,並使其與pdf報告。 當我做這樣的工作原理:報告實驗室功能不生成pdf文件

from reportlab.pdfgen import canvas 
from reportlab.lib.pagesizes import landscape, A4, letter 
from reportlab.lib.units import cm, inch 


file = 'test.pdf' 
name = 'Nita Alexandru Stefan' 
year = '1993' 

c = canvas.Canvas(file, pagesize=landscape(letter)) 
c.drawImage('cert.jpg', 0*cm, 0*cm, 29*cm, 22*cm) 
c.setFont("Times-Roman", 12) 
c.setFillColorRGB(0.2578125, 0.2265625, 0.23046875) 
c.drawString(500, 374, name) 
c.drawString(429, 359, year) 
c.showPage() 
c.save() 

我想打一個功能和使用dict.get(),當我想這不會產生任何東西:

from reportlab.pdfgen import canvas 
from reportlab.lib.pagesizes import landscape, A4, letter 
from reportlab.lib.units import cm, inch 

data = dict(name='Nita Alexandru Stefan', year='1993') 


def generate_pdf(data, canvas): 
    file = 'test.pdf' 
    c = canvas.Canvas(file, pagesize=landscape(letter)) 
    c.drawImage('cert.jpg', 0*cm, 0*cm, 29*cm, 22*cm) 
    c.setFont("Times-Roman", 12) 
    c.setFillColorRGB(0.2578125, 0.2265625, 0.23046875) 
    c.drawString(500, 374, data.get('name', "")) 
    c.drawString(429, 359, data.get('year', "")) 
    c.showPage() 
    c.save() 

任何ideea爲什麼它不生成任何東西,也沒有改變之前創建的文件?

回答

1

看來你是不是調用generate_pdf function

電話:

generate_pdf(data, canvas) 

功能後generate_pdf結束

,如:

def generate_pdf(data, canvas): 
    file = 'test.pdf' 
    c = canvas.Canvas(file, pagesize=landscape(letter)) 
    c.drawImage('cert.jpg', 0*cm, 0*cm, 29*cm, 22*cm) 
    c.setFont("Times-Roman", 12) 
    c.setFillColorRGB(0.2578125, 0.2265625, 0.23046875) 
    c.drawString(500, 374, data.get('name', "")) 
    c.drawString(429, 359, data.get('year', "")) 
    c.showPage() 
    c.save() 

generate_pdf(data, canvas) 
+0

行,我明白,怎麼能我調用函數來獲得想要的結果? –

+0

完美,謝謝 –