我如何在Flask中生成和下载PDF而不将其保存在Webapp中?

问题描述 投票:0回答:1

im试图使用ReportLab模块获取PDF,到目前为止效果还不错。我的问题是,使用.build()方法将PDF保存在Webapps目录中。我想要的是我可以发送PDF进行下载而无需保存。 wkhtmltopdf模块可以通过某种方式实现,但我不想为此使用任何其他服务器。过程如下:用户按下“以pdf下载”按钮,生成pdf,并立即以下载形式返回,而无需先保存。你知道这有可能吗?

pdf flask reportlab
1个回答
0
投票

您要创建PDF服务器端,将其返回给客户端,而不保存PDF(例如,在S3中吗?

是,可以使用]在内存中创建PDF>

buffer = io.BytesIO()
myPDF = canvas.Canvas(buffer, pagesize=letter)

然后在创建pdf后,使用]保存它>

myPDF.save()
buffer.seek(0)

然后,当您准备好返回PDF作为响应时,可以使用以下方式返回它:

response = HttpResponse(buffer, content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="{}"'.format("myFile.pdf")
return response
© www.soinside.com 2019 - 2024. All rights reserved.