2016-08-17 35 views
1

djangoの複数のpdfをweasyprintとマージすることは可能ですか?Djangoとweasyprint、merge pdf

私はこのようなものがあります:最初のテンプレートを

def verpdf(request, pk): 
    odet = get_object_or_404(Note, pk = pk) 
    template = get_template('pdfnot.html') 
    template1 = get_template('pdfnot2.html') 
    p1 = template.render({'odet': odet}).encode(encoding="ISO-8859-1") 
    p2 = template1.render({'note':odet}).encode(encoding="ISO-8859-1") 
    pdf1 = HTML(string=p1).render() 
    pdf2 = HTML(string=p2).render() 
    all_pages = [po for po in pdf1.pages for doc in pdf2.pages] 
    pdf_file = pdf1.copy(all_pages).write_pdf() 
    http_response = HttpResponse(pdf_file, content_type='application/pdf') 
    http_response['Content-Disposition'] = 'filename="report.pdf"' 

    return http_response 

をしかし、私は2つのファイルを結合することはできないんだけど、常に出力、それが1つのPDFに二つの文書をマージすることが可能ですか?手伝って頂けますか?ありがとう。

答えて

2

は私にしばらく時間がかかったが、私はそれを解決し、ドキュメントを理解していない私のせいだった笑、ここでは誰もが同じ問題がある場合は、コードです:

def verpdf(request, pk): 
    odet = get_object_or_404(Note, pk = pk) 
    template = get_template('pdfnot.html') 
    template1 = get_template('pdfnot2.html') 
    p1 = template.render({'odet': odet}).encode(encoding="ISO-8859-1") 
    p2 = template1.render({'note':odet}).encode(encoding="ISO-8859-1") 
    pdf1 = HTML(string=p1) 
    pdf2 = HTML(string=p2) 
    pdf11 = pdf1.render() 
    pdf12 = pdf2.render() 

    val = [] 

    for doc in pdf11, pdf12: 
     for p in doc.pages: 
      val.append(p) 

    pdf_file = pdf11.copy(val).write_pdf() # use metadata of pdf11 

    http_response = HttpResponse(pdf_file, content_type='application/pdf') 
    http_response['Content-Disposition'] = 'filename="report.pdf"' 

    return http_response 

そして2と、このPDF出力では、ページ。

関連する問題