ReportLab
一、安装ReportLab
ReportLab库在PyPI上提供,可以使用pip来安装:
$ pip install reportlab
在Python交互解释器中导入它来测试安装:
>>> import reportlab
如果没有抛出任何错误,证明已安装成功。
二、编写视图
FileResponse
这有个 "Hello World" 示例:
import io from django.http import FileResponse from reportlab.pdfgen import canvas def some_view(request): # Create a file-like buffer to receive PDF data. buffer = io.BytesIO() # Create the PDF object, using the buffer as its "file." p = canvas.Canvas(buffer) # 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() # FileResponse sets the Content-Disposition header so that browsers # present the option to save the file. buffer.seek(0) return FileResponse(buffer, as_attachment=True, filename='hello.pdf')
相关说明:
application/pdfas_attachment=TrueFileResponseContent-Dispositionas_attachmentfilename“另存为…”pbuffershowPage()save()
生成CSV文件
类视图
评论总数: 3
默认不支持中文。需要注册中文字体。
By
蔷薇-Nina
On
2019年7月10日 22:17
回复
刘老师,您好!我都是把生成好的pdf放在服务器的文件夹里面,io库作为pdf临时保存地点是否可以提高生成pdf和下载pdf的速度?如果不可以,那这个库的作用是什么?盼回复,感谢~~~~
By
蔡可夫斯基的冒险之旅
On
2018年10月24日 16:50
回复
网上搜索一下,查查资料吧,看看有没有人讨论过这个问题。
博主
回复
蔡可夫斯基的冒险之旅
2018年10月25日 08:59
回复