Django将嵌套模板渲染为pdf

时间:2014-02-16 00:52:41

标签: python html css django pdf

我正在尝试使用Django在我的网站上将html转换为pdf。 我尝试使用wkhtmltopdf和pisa(以及一些使用它们的django模块),但我总是遇到与css和静态文件相同的问题。

我的基本布局如下所示:

{% load staticfiles %}
{% load bootstrap3 %}
<!DOCTYPE html>
<html lang="fr">
    <head>
        <!-- ... -->
        {% block css %}
            {% bootstrap_css %}
            <link rel="stylesheet" type="text/css" href="{% static 'website/css/style.css' %}" />
        {% endblock css %}
    </head>
    <body>
        <!-- ... -->
        <div class="container" id="main-container">
            <div id="page-content">{% block content %}{% endblock content %}</div>
        </div>
    </body>
</html>

另一种扩展基本布局的布局,包括我的简历:

{% extends "website/base.html" %}
<!-- ... -->
{% block content %}
    <!-- ... -->
    {% include "website/cv.html" %}
{% endblock content %}

我的简历:

{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'website/css/cv.css'  %}" />
<div id="cv">
    <!-- ... -->
    <img src="{% static 'website/img/me.jpg' %}" class="img-rounded">
    <!-- ... -->
</div>

我想将简历呈现为pdf,问题是它使用bootstrap_css和静态文件(css文件和图片)并且它们不会被渲染。

我检查了一些类似的主题,但他们把所有的CSS放在html中,这在我的情况下并不是很好。即使我通过将所有css放在我的简历中来尝试此解决方案,{%bootstrap_css%}块也不起作用。

有什么方法可以让它发挥作用吗?我可以使用任何与django或linux一起使用的库/模块。

谢谢

1 个答案:

答案 0 :(得分:0)

如果您能找到HTMLPDF之间的100%映射,我会感到惊讶!尤其是像引导程序这样花哨的“新东西”。 (在字处理器格式之间进行转换很难!)

但是,如果您有一个仅用于CSS渲染的特殊内联PDF脚本,该怎么办?您可以使用mediatype属性来控制它吗?我想知道......

免责声明:我从未说服Django做我想做的事。 YMMV。