如何使用reportlab SimpleDocTemplate与GAE

时间:2013-02-23 14:12:47

标签: google-app-engine pdf io reportlab

我无法使用以下示例代码输出PDF

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle

def get_table(self, response):
    buffer = StringIO()
    doc = SimpleDocTemplate(buffer, pagesize=letter)
    elements = []
    data= [['00', '01', '02', '03', '04'],
           ['10', '11', '12', '13', '14'],
           ['20', '21', '22', '23', '24'],
           ['30', '31', '32', '33', '34']]
    t=Table(data)
    t.setStyle(TableStyle([('BACKGROUND',(1,1),(-2,-2),colors.green),
                   ('TEXTCOLOR',(0,0),(1,-1),colors.red)]))       
    elements.append(t)
    doc.build(elements)
    response.out.write(buffer.getvalue())
    buffer.close()
    return response

我正在使用webapp2.RequestHandler并设置了响应标头,如下所示:

self.response.headers['Content-Type'] = 'application/pdf' self.response.headers['Content-Disposition'] = 'filename=my.pdf'

我得到的结果是一个空白的pdf页面。

1 个答案:

答案 0 :(得分:0)

想出来!问题是我也在打电话

c = canvas.Canvas(self.response.out, pagesize=letter)
....
c.showPage()
c.save()
请求处理程序中的

我不知道你们两个都没有
SimpleDocTemplate 

以及

canvas.Canvas

无论如何它现在有效。