最近项目中发现Web前端通过javascript是无法实现调用LPT1端口进行特定格式的打印的。而直接采用浏览器的打印会导致打印的全部为乱码。
后经查阅各方资料可以采用调用ActiveX方法实现小票机特定格式的打印。
下面为具体方法:
<script type="text/javascript" language="javascript"> function print() { try { var objfs=new ActiveXObject("Scripting.FileSystemObject"); var objprinter = objfs.CreateTextFile("LPT1:", true); }catch(Error) { alert("无法获取Active插件,或者LPT1端口未连接打印机。错误信息:"+Error.Message); return; } objprinter.Writeline(""); objprinter.Writeline(" 小票 "); objprinter.Writeline("———————————————————————————————"); objprinter.Writeline('<%=Model.NumberID %>'); objprinter.Writeline('门店编码:<%=Model.StoreCode%>'); objprinter.Writeline('门店名称:<%=ViewData["werks"]%>'); 。 。 。 。 。
}
</script>
注意:因为需要创建ActiveX控件,所以需要对IE的安全级别进行调整。默认IE对不安全的ActiveX控件是不允许创建的。
具体设置如下:IE——》工具——》Internet选项——》安全——》Inertnet——》自定义级别 ,找到如下选项默认为禁用,改为启用,然后保存。