关于使用django中的报告实验室生成的pdf,我有三个问题,我似乎无法找到一个好的答案。 django网站上的文档仅涵盖了如何生成pdf以供下载。但是,如何将生成的pdf附加到电子邮件并发送而不是下载?如何将pdf保存到服务器上的目录而不是下载?如何在浏览器窗口中显示pdf而不是下载?只需使用django文档示例:
from reportlab.pdfgen import canvas
from django.http import HttpResponse
def some_view(request):
# Create the HttpResponse object with the appropriate PDF headers.
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
# Create the PDF object, using the response object as its "file."
p = canvas.Canvas(response)
# Draw things on the PDF. Here's where the PDF generation happens.
# See the ReportLab documentation for the full list of functionality.
p.drawString(100, 100, "Hello world.")
# Close the PDF object cleanly, and we're done.
p.showPage()
p.save()
return response
答案 0 :(得分:3)
要在浏览器上显示de PDF而不是下载,您只需从
中删除附件一词response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
你会有这样的东西
response['Content-Disposition'] = 'filename="somefilename.pdf"'
答案 1 :(得分:1)
您可以将常规文件名传递给Canvas()而不是类似文件的对象。您通常应该将下一个参数传递给pagesize - 默认为A4。
有关所有详细信息,请下载用户指南& ReportLab的参考指南:
http://www.reportlab.com/docs/reportlab-userguide.pdf
见第10页。