2017-02-15 30 views
0

Я пытаюсь рисовать строки на jpg-изображении и делать его pdf с помощью reportlab. Когда я делаю это, как это работает:функция лабораторной записи не создает файл 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() 

Любые идеи, почему это ничего не генерирует и не меняет файл, созданный ранее?

ответ

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

отлично, спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^