Django:使用Pisa库显示图像

时间:2017-06-26 07:34:54

标签: django html2pdf pisa

我正在寻找html2pdf library生成的PDF中的添加图片。 到目前为止,我还没有办法做到这一点。

我的功能如下:

@login_required
def Generate_PDF(request, id) :

    personne = get_object_or_404(Individu, pk=id)

    data = {"personne" :personne}

    template = get_template('raw.html') 
    html  = template.render(Context(data))
    result = StringIO.StringIO()

    path = Global_variables.Individu_path.path + filename


    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("utf-8")), result)
    if not pdf.err:
        return HttpResponse(result.getvalue(), content_type='application/pdf')
    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))

在我的RawFile.html中,我添加:

<body>

        <img class="logo" src="{% get_static_prefix %}{{ mytheme }}/images/logo.jpeg" />

        <h2 align="center"> <font size="6"> Fiche d'Identification - INDIVIDU</font></align> </h2>

        <br></br>
        <br></br>

        {% block content %} 

        {% if personne.Image %}
            <img src='./19312STRASBOURG-855525.jpg'/>
        {% endif %}

        <h3 align="left"> N° Identification {{personne.NumeroIdentification}} </align> </h3>
        <h3 align="left"> Au nom de {{personne.Prenom}} {{personne.Nom}}</align> </h3>
        ...
        </body>

如何在PDF中添加我的徽标和其他图片?我用不同的方式搜索了这个。没有工作。

谢谢

1 个答案:

答案 0 :(得分:0)

我找到了解决方案;)

这是我的剧本:

@login_required
def Identity_Individu_PDF(request, id) :

    folderId = None

    personne = get_object_or_404(Individu, pk=id)

    data = {"personne" :personne}

    template = get_template('Identity_Individu_raw.html') # A modifier : template pdf généré
    html  = template.render(Context(data))
    result = StringIO.StringIO()

    NumeroIdentification = str(Individu.objects.get(pk=id).NumeroIdentification.encode('utf-8'))
    NumeroIdentification_2 = NumeroIdentification.replace(" ", "")

    filename_directory = str(Individu.objects.get(pk=id).Nom.encode('utf-8')) + "_" + str(Individu.objects.get(pk=id).Prenom.encode('utf-8')) + "_" + NumeroIdentification_2
    filename_init = 'Fiche_Identification_' + filename_directory 
    filename = filename_init + '.pdf'

    path = Global_variables.Individu_path.path + filename

    file = open(path, "w+b")
    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("utf-8")), file)
    file.close()

我的HTML文件:

<h2 align="center"> <font size="6"> Fiche d'Identification - INDIVIDU</font></align> </h2>

        <br></br>
        <br></br>

        {% block content %} 

        {% if personne.Image %}
            <img src='/Users/Desktop/Django/DatasystemsCORE/Photos_Identifications/pictures/19312STRASBOURG-614245.jpg' class="img-responsive"/>
        {% endif %}