Django 实现HTML转PDF 用通用视图编写PDF 并且让PDF支持中文
如何使用django-easy-pdf
你好! 这是我第一次使用 CSDN 发布文章,django工作有半年了,今天有个需求就是使用django视图来编写可浏览的PDF,但是研究许久未果。后来在度娘上找到了django-easy-pdf,也实现了我的需求,但是使用的过程中遇到了好多问题,接下来教你如何使用django-easy-pdf,并且分享我遇到的问题解决方案。 如果你想学习或了解更多关于django的知识,可以加Q群哦[828816138]。
django-easy-pdf的依赖
这个应用程序使Django中的PDF文件变得非常容易。它可用于从简单的HTML标记和CSS样式创建发票,账单和其他文档。您甚至可以嵌入图像并使用自定义字体。
该库提供了基于类的视图,只需要继承它 PDFTemplateView或 PDFTemplateResponseMixin 便可以呈现PDF
django-easy-pdf 依赖于取决于:
- django>=1.10
- xhtml2pdf>=0.2b1
- reportlab
安装django-easy-pdf
// An highlighted block
pip3.6 install xhtml2pdf> = 0.2b1
添加easy_pdf到INSTALLED_APPS
然后您就可以这样去使用了
{% extends "easy_pdf/base.html" %}
{% block content %}
<div id="content">
<h1>Hi there!</h1>
</div>
{% endblock %}
编写CBV视图
from easy_pdf.views import PDFTemplateView
class PDFContract(PDFTemplateView):
template_name = 'PDFContract.html'
def get_context_data(self, **kwargs):
return super(PDFContract, self).get_context_data(
pagesize='A4',
title='XXXX采购协议供货合同'