2017-02-15 26 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

完美,谢谢 –