Django压缩使用xhtml2pdf生成的多个PDF文件

时间:2018-08-14 06:22:43

标签: django zipfile xhtml2pdf

我成功使用xhtml2pdf生成了PDF文件供下载。

我现在想实现的功能是能够生成多个(单独的)PDF文件以供下载。我猜想实现这一目标的最佳方法是压缩PDF,但是我对如何实现这一目标感到困惑。有人能指出我正确的方向吗?

我渲染到PDF的函数是:

def render_to_pdf(template_src, context_dict={}): 
    template =   get_template(template_src) 
    html = template.render(context_dict) 
    result = BytesIO() 
    pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")),result, link_callback=link_callback) 
    if not pdf.err: 
        return HttpResponse(result.getvalue(), content_type='application/pdf') 

    return None

我对生成单个PDF文件的看法是:

class GeneratePDF(View):
    def get(self, request, *args, **kwargs):
        date = datetime.datetime.now()
        context = { 'date':date }
        pdf = render_to_pdf('pdf/my_first_file.html', context)
        if pdf:
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "First_File.pdf"
            content = "attachment; filename='%s'" %(filename)
            response['Content-Disposition'] = content
            return response

        return HttpResponse("Not found")

作为PDF下载的一部分,我要呈现为zip的其他文件都在pdf/文件夹中。其中最多12个。每个上下文均不同:

pdf/my_second_file.html
pdf/my_third_file.html
...

任何可以提供的指导将不胜感激!

0 个答案:

没有答案