Django HTML到PDF,包含链接和动态数据

时间:2014-11-10 18:42:58

标签: python django wkhtmltopdf

我有Django 1.7.1和Python 2.7.8

我想从渲染的html模板中获取PDF,我尝试过PISA(xhtml2pdf),但首先,我在Bootstrap css上遇到了很多问题,然后,在删除了一些行后,出现了这条消息:

'CSSTerminalFunction' object has no attribute 'lower'

'lower'似乎是python 3的一部分而在2.7中不可用(如果我错了,请告诉我)

现在我正在尝试使用wkhtmltopdf,但the documentation太基本了。它仅描述了一个使用静态HTML的简单示例

有人可以解释我如何使用我的实际模板获取PDF文件吗?

  • 在模板中,我有2个指向css文件的链接,以及一个Image(徽标)
  • 我有一些bootstrap css样式,我想尽可能使用它
  • 我在模板中放了一个“queryset”(实际上是一个元组),以便在表格中呈现
  • 我还把一些字符串参数放在我的html中的不同位置。

这是模板的一部分

{% extends 'reporteBase.html' %}
{% block titulo %}Reporte - Inventario por Ubicación{% endblock %}

{% block content %}

{% if productos %}
<h2>Inventario de la ubicación "{{ ubi }}"</h2>
<div class="row" style="margin-top: 2em">
    <table class="table table-condensed" data-resizable-columns-id="demo-table">
        <thead>
            <tr>
                <th data-resizable-column-id="mod">Modelo/Item</th>
                <th data-resizable-column-id="desc">Descripcion</th>
                <th data-resizable-column-id="cant" data-noresize>Cantidad</th>
                <th data-resizable-column-id="unidad" data-noresize>Unidad</th>
                <th data-resizable-column-id="ubi" data-noresize>Ubicacion</th>
            </tr>
        </thead>
        <tbody>
        {% for p in productos %}
            <tr>
              <td>{{ p.producto__item}}</td>
              <td>{{ p.producto__descripcion }}</td>
              <td>{{ p.sum_cantidad }}</td>
              <td>{{ p.producto__unidad }}</td>
              <td>{{ p.ubicacion__nombre }}</td>
            </tr>
        {% empty %}
        <tr><td colspan=4>No hay Productos</td></tr>
        {% endfor %}
        </tbody>
    </table>
</div>
{% endif %}
{% endblock %}

谢谢!

1 个答案:

答案 0 :(得分:0)

视图需要将模板呈现为PDF。这就是django-wkhtmltopdf Simple Example的代码所做的。

首先尝试将网页呈现为HTML,以确保模板正常运行。您可以使用以下视图执行此操作:

url(r'^html_preview/$', 
    TemplateView.as_view(template_name='pdf_template.html'))

在您解决了模板的任何问题后,请使用PDFTemplateView进行尝试。