最近功能做项目,需要实现打印条码标签的功能,对于第一次接触打印机的小白来说简直是折磨死我拉,公司采购的打印机是斑马的GK888T,其实,如果单纯的想实现能打印出来标签的话,直接用window.print();然后配合css样式调整打印纸尺寸基本上就可以实现,但是,为了方便仓库的小哥工作上更加的简便,使整个后台运行流程体验度更好,需要实现直接打印,也就是不需要预览不需要弹出页面设置的宽口直接打印标签,另外,打印参数也只需要设置一次。

  找了很多资料,也试了几个插件但是都没有成功,最后安装了jatoolsPrinter试用版的放在项目框架中试了一下,差不多能实现想要的效果,这里放一个jatoolsPrinter快速入门的视频讲解地址:http://print.jatools.com/tutorial/quickstart-2/quickstart-2.html  以及jatoolsPrinter使用手册地址:http://print.jatools.com/guide.htm  

直接上代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <script type="text/javascript" src="jatoolsPrinter.js"></script>
        <script> 
        function doPrint(how) {
            var myDoc = {
         settingsID:"mysettings1",//待保留的打印设置id,打印后将被保存在注册表中,下一次启动相同值的settingsID打印文档时,控件将用保留的参数自动设置打印机
                documents:document,   // 要打印的div 对象在当前文档document中
                      //控件将从本文档中的#page1作为首页打印,#page2作为第二页打印
                                      //如果需要打印的内容不在同一页,document可以换成URL
                copyrights:'杰创软件拥有版权  www.jatools.com'  // 版权声明,必须   
                };
            // getJatoolsPrinter().print(myDoc,false);
            // getJatoolsPrinter().print(myDoc,true);
            // getJatoolsPrinter().print(myDoc,false);
            
            if( how == 1 ) {
                getJatoolsPrinter().printPreview(myDoc);//打印预览功能
            } else if( how == 2 ) {
                getJatoolsPrinter().print(myDoc,true); //无预览有弹框打印
            } else{
                getJatoolsPrinter().print(myDoc,false);//直接打印
            }
        }</script>
    </head>
    <body>
        <input type="button" value="打印预览" onclick="doPrint(1)">
        <input type="button" value="打印..." onclick="doPrint(2)">
        <input type="button" value="打印" onclick="doPrint(3)">

      <div id="page1">第一页1</div>
      <div id="page2">第一页2</div>

<script>
        declareJatoolsPrinter();//加载插件声明
    </script>
    </body>
</html>

 声明:试机成功的是用的试用版的,免费版插件安装的时候涉及到版本还有浏览器兼容的问题,暂时没有成功应用,在ie内核的浏览器上可以使用,但是我们需要做到火狐的兼容,这个估计需要购买付费版的吧,此外还有一款打印控件lodop,应用起来也比较简单,但是也是收费的,总结起来就是:暂时没有找到不用插件可以实现直接打印的方法,一般可以实现直接打印等的功能的方法都是要使用第三方软件,也就是需要购买软件。。。