我正在开发基于网络的POS。不幸的是,POS必须通过热敏收据打印机(TM-T88IV,Epson)打印。 Web应用程序基于Django。当用户单击Web应用程序中的控件时,是否有任何关于系统如何自动打印收据的想法?
我正在考虑为此目的在python中创建另一个服务,但这会破坏拥有Web应用程序的目的,您需要的只是浏览器,而无需任何额外的安装。
打印机已经连接到客户端,打印应该“静默”触发,这意味着不需要人工干预。交易完成后,应开始打印。
欢迎任何建议!
答案 0 :(得分:7)
我认为有两种方法可以实现它:
如果每台客户都有一台打印机,那么这是一个很好的解决方案(因为您只能使用默认打印机)。请记住,您可以删除打印服务器(对资源非常有限的设备非常有用),制作浏览器应自动执行的脚本以打开您的文件。你可以使用这样的东西:
#!/bin/bash
printer="/dev/usb/lp0"
encoding_needed=true #false
if $encoding_needed; then
iconv -c -t 437 $1 > $printer
else
cat $1 > $printer
fi
print.always_print_silent
的新布尔值,并将其设置为True
print.show_print_progress
的新布尔值,并将其设置为False
请注意,还有其他扩展程序可用于制作自助服务终端,例如:
您可以使用以下选项启动它:--kiosk --kiosk-printing
对于自助服务终端模式,请参阅:http://support.microsoft.com/kb/154780
良好的解决方案:
答案 1 :(得分:5)
这里有两个选项:打印html页面或提供PDF文件。
注意:最初并不清楚打印应该是自动的,这意味着答案对OP没有直接用处。
将收据显示为html页面,然后创建一个media="print"
CSS样式表,浏览器在打印收据时将使用该样式表。有a lot to say about CSS print style sheets,但重要的是你应该删除所有打印费用昂贵的导航元素和图像。
执行此操作时,用户只需自己打印页面即可。您还可以添加“打印我”按钮,该按钮将向您的用户显示打印机对话框。这是通过JavaScript完成的:
<a href="javascript:window.print()">Print this page</a>
(这对于没有JS的客户来说有点障碍,请更好地检查this tutorial about JS printing。)
在Django中生成PDF,并将其显示给用户。他可以自由打印或稍后将其保存在计算机上。大多数网站都这样做,因为它更容易控制PDF文件的布局,并且更容易使它看起来像真正的收据。
答案 2 :(得分:2)
如果在google code上使用raw / esc / p,请尝试使用jzebra。