如何使用PDFTemplateResponse在基于类的视图中使用django-wkhtmltopdf添加页眉和页脚

时间:2015-11-04 01:06:00

标签: python django pdf wkhtmltopdf django-class-based-views

我想用标题生成一个pdf,实际上我正在使用cygwin而且我不知道我的代码中的某些内容是否错误,因为我在这个示例中使用了我的代码Creating PDFs with django (wkhtmltopdf)。这是我的代码:

views.py

from django.views.generic import View
from wkhtmltopdf.views import PDFTemplateResponse

GenerateReportPdf(View):
    def __init__(self):
        self.template = 'pdf_template.html'

    def get(self, request):
        ...
        response = PDFTemplateResponse(
                                       request=request,
                                       template=self.template,
                                       filename='report.pdf',
                                       context=self.context,
                                       show_content_in_browser=True,
                                       cmd_options={'margin-top': 30,},
                                       header_template='header.html',
                                       )

我的HTML代码可能很简单,但它显示了一些东西,我成功地渲染了PDF而不是标题 了header.html:

<html>
<head>
</head>
<body>
<img src="http://www.someplaceintheworld/some.png" alt="some logo" />
</body>
</html>

my urls.py:

from django.conf.urls import patterns, url
from django.contrib.auth.decorators import login_required
from . import views

urlpatterns = patterns('',
    url(r'^$', login_required(views.GenerateReportPdf.as_view()), name='index'),
)

1 个答案:

答案 0 :(得分:1)

我在这里找到答案https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1645只需要将doctype放到每个html中。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<img src="http://www.someplaceintheworld/some.png" alt="some logo" />
</body>
</html>