2015-04-22 3 views
0

У меня есть проект python, который создает PDF-файл из некоторых данных в веб-приложении на Python с помощью ReportLab. Он создает большую текстовую строку, а затем добавляет ее к холсту, а затем создает PDF-файл из холста. Меня попросили добавить линейную диаграмму в середине PDF. Я нашел много информации, там о том, чтобы включить диаграмму непосредственно в PDF в ReportLab, например так:Как добавить диаграмму в PDF с помощью ReportLab

Adding Graph to Reportlab PDF

Но ничего о том, как добавить, что диаграммы в формате PDF в рамках другой форматированный контент. Вот код, с которым я работаю:

class GenPDF(R): 
@tornado.web.authenticated 
def get(self): 
    """takes text and generates PDF""" 
    msg = gen_report(subject, test_name) 

    filename = "filename.txt" 
    self.set_header("Content-Type", 'application/pdf; charset="utf-8"') 
    self.set_header("Content-Disposition", "attachment; filename=%s.pdf" %filename)     
    io = StringIO.StringIO() 
    c = canvas.Canvas(io, pagesize=A4) 

    imagem = canvas.ImageReader(StringIO.StringIO(open('logo.jpeg', 'rb').read())) 
    c.drawImage(imagem, 430, 688, 100, 100) # Draw it in the bottom left, 2 inches high and 2 inches wide 

    text = c.beginText() 
    text.setTextOrigin(100, 700) 
    text.setFont("Times-Roman", 16) 
    text.textLine("Test Report") 
    text.setFont("Times-Roman", 12) 
    text.textLines(msg) 
    text.textLines(CLASS_MAP[test_name]['blurb']) 
     text.textLine("_____________________________________________________________________________") 
    text.textLines(CLASS_MAP[test_name]['scale']) 
     text.textLine("_____________________________________________________________________________") 
    text.setFont("Times-Roman", 8) 

    text.textLines(DISCLAIMER) 
    c.drawText(text) 


    c.showPage() 
    c.save() 

    pdf=io.getvalue() 
    io.close() 
    self.write(pdf) 

Где я могу добавить код для добавления диаграммы? Я попытался добавить его как рисунок, но не могу понять, где я могу добавить чертеж на холст или в сам PDF.

ответ

0

Вы можете управлять размером и поместите диаграмму на странице, как это:

drawing = Drawing(350, 190) 
lc = HorizontalLineChart() 
lc.x = 10 
lc.y = 10 
lc.height = 150 
lc.width = 330 
... 
drawing.hAlign = 'CENTER' 
drawing.add(lc) 

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

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