Web 前端通过调用ActiveX实现LPT1端口小票机打印功能。

最近项目中发现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——》自定义级别 ,找到如下选项默认为禁用,改为启用,然后保存。

posted @ 2013-05-25 16:35  李路平  阅读(6109)  评论(1编辑  收藏  举报