2013-08-28 50 views
0

我正在Django应用程序。我有一个显示项目日志的页面,每个项目都有一个“打印标签”链接。此时,单击该链接会在弹出窗口中显示该特定项目的标签,但不会将标签发送到打印机。后面的“打印标签”链接视图功能如下所示:打印动态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副本?如果是这样,请告诉我如何实现这一点。

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

回答

2

可能是因为这是一个Django应用程序,所以您需要使用客户端的打印机。唯一的方法是告诉用户的浏览器打印。您需要为此使用Javascript:window.print()

+0

..和一个[打印样式表](http://coding.smashingmagazine.com/2011/11/24/how-to-set-up-a-print-style-sheet/)与它一起去。 –

+0

@DanielRoseman感谢您的提示。它确实有帮助。我认为这将需要一些服务器端的Python脚本,但Javascript工作正常。 – debodunmcg