打印动态django视图模板

时间:2013-08-28 10:02:20

标签: python django printing

我正在开发一款django应用。我有一个显示项目日志的页面,每个项目都有一个“打印标签”链接。此时,单击该链接会在弹出屏幕中显示该特定项目的标签,但不会将标签发送到打印机。 “打印标签”链接背后的查看功能如下所示:

@login_required
def print_label(request, id):
     s = Item.objects.get(pk = id)
     return render_to_response('templates/label.html', {'s': s}, context_instance=RequestContext(request))

标签的HTML如下所示:

{% load humanize %}
<head>
    <style type="text/css">
        div{
            min-width: 350px;
            max-width: 350px;
            text-align: center;
        }
        body{
            font-family: Arial;
            width: 370px;
            height: 560px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div id="labelHeader">
        <img src="{{ STATIC_URL }}img/label-header.png" width="350px">
    </div>
    <hr/>
    <p></p>
    <div id="destinationAddress">
        <span style="font-size: xx-large; font-weight: bold;">{{ s.item_number }}</span> 
        </p>
        DESTINATION:
        <br/>
        <strong>{{s.full_name}}</strong><br/>
        <strong>{{ s.address }}</strong><br/>
        <strong>{{s.city}}, {{s.state}}</strong><br/>
        <strong>Tel: {{s.telephone}}</strong>
    </div>
    <p></p>
    <hr/>
    <div id="labelfooter">
        <img src="{{ STATIC_URL }}img/label-footer.png" width="350px">
    </div>
</body>

我的问题是,如何将显示的标签发送到同一功能的打印机?我研究并发现了一些库(如xhtml2pdf,webkit2png,pdfcrowd等),但是他们将创建标签的pdf或图像文件,我将不得不将其发送到打印机。是否可以直接发送到打印机而无需创建标签的pdf副本?如果是这样,请告诉我如何实现这一目标。

非常欢迎您的回答和建议。谢谢。

1 个答案:

答案 0 :(得分:2)

据推测,由于这是一个Django应用程序,因此您需要使用客户端的打印机。唯一的方法是告诉用户的浏览器进行打印。您需要使用Javascript:window.print()