【发布时间】:2014-11-10 18:42:58
【问题描述】:
我有 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 文件的链接和一个图片(徽标)
- 我有一些引导 css 样式,如果可能的话我想使用它
- 我在模板中放置了一个“查询集”(实际上是一个元组)以在表格中呈现
- 我还在我的 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 %}
谢谢!
【问题讨论】:
-
如果我理解正确,您希望将呈现的 html 转换为 pdf 格式,而不是模板。这看起来很有希望:pypi.python.org/pypi/xhtml2pdf
-
@joelgoldstick 我已经尝试过 xhtml2pdf,但它使用了一个名为 'lower' 的函数,它似乎不在 python 2.7 中,所以我需要使用另一个应用程序。 ://
标签: python django wkhtmltopdf