欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ActiveX控件的使用-js实现打印超市小票功能代码详解

程序员文章站 2022-03-20 21:44:08
·应客户的需求= = ,要在网页端实现打印小票的功能 ·先来一张打印出的小票效果图(合计明显不对,因为有修改订单功能,请各位忽略) 用什么方法实现呢: 我...

·应客户的需求= = ,要在网页端实现打印小票的功能

·先来一张打印出的小票效果图(合计明显不对,因为有修改订单功能,请各位忽略)

ActiveX控件的使用-js实现打印超市小票功能代码详解

用什么方法实现呢:

我想应该是有三种吧

1.用第三方的浏览器控件(这个好似比较方便,我的老师也是这样建议我)向大家推荐一个 lodop打印控件

2.用css写好模板,然后直接用页面打印的方法(应该是这样吧)

以上两种还没有尝试,这两天陆续尝试)

3.用微软自己的activex控件(activex控件可以实现调用本地的文件等操作(之前试过调用cmd,实现shutdown -s -t,在网页控制电脑的定时关机))

当然这种方法的缺点也很明显:限操作系统-因为是微软的东西只能windows下,限浏览器-因为activex也只能在ie浏览器下。所以局限性比较大

实现过程:

1.编辑『word小票模板』,要用到word中『书签』这个工具(通过『书签』的定位,js就可以操作word在『书签』指定的位置进行 修改、写入内容)

2.在js对word模板进行 打开、赋值、打印操作

一、编辑『word小票模板』

    1.以word2007为例,首先排好大致的样式

ActiveX控件的使用-js实现打印超市小票功能代码详解

二、js

直接上源代码吧:

<input type="button" value="toprinter " onclick="viewtoword();" /> 
- hide code
function viewtoword() {
    //当前时间
    var time;
    var today = new date();
    time = today.tolocalestring();
    
    try { 
      // 创建activexobject对象 
      wdapp = new activexobject("word.application"); 
    } 
    catch (e) { 
      console.log("无法调用office对象,!", e) 
      wdapp = null; 
      return; 
    }
    wdapp.documents.open("f:\\printertemplate1.doc"); //打开本地(客户端)word模板
    wddoc = wdapp.activedocument; 
    wddoc.bookmarks("ordernum").range.text = "201509080959" + "\n";
    wddoc.bookmarks("ordername").range.text = "郑斌" + "\n"; 
    wddoc.bookmarks("orderaddress").range.text = "www.cnblogs.com/zhengbin" + "\n";
    wddoc.bookmarks("orderphonenum").range.text = "qq:1746788394" + "\n";
    wddoc.bookmarks("orderdaocantime").range.text = "10:00-11:00" + "\n";
    wddoc.bookmarks("ordertime").range.text = "09-08 10:15";
    //添加表格
    var mytable = wddoc.tables.add (wddoc.bookmarks("ordercart").range,3,3);//(赋值区域,行数,列数)
    //隐藏边框
    var table=wdapp.activedocument.tables(1);
    table.borders(-1).linestyle=0;
    table.borders(-2).linestyle=0;
    table.borders(-3).linestyle=0;
    table.borders(-4).linestyle=0;
    table.borders(-5).linestyle=0;
    table.borders(-6).linestyle=0;
    for(i=1;i<=3;i++){//行
      //第一列
      with (mytable.cell(i,1).range){
        font.size = 8;//调整字体大小
        insertafter("博客园"+i);//插入的内容
      }
      //第二列
      with(mytable.cell(i,2).range){
        font.size = 8;
        insertafter(i);
        paragraphformat.alignment=1;//表格内容对齐:0-左对齐 1-居中 2-右对齐
      }
      //第三列
      with(mytable.cell(i,3).range){
        font.size = 8;
        insertafter("无价");
        paragraphformat.alignment=2;
      }
    }
    wddoc.saveas("f:\\printertemp_cnblogs.doc"); //保存临时文件word
    wddoc.bookmarks("totalprice").range.text = "无价" + "\n";
    wddoc.bookmarks("time").range.text = time; 
    //wdapp.activedocument.activewindow.view.type = 1;
    wdapp.visible = false; //word模板是否可见 
    wdapp.application.printout(); //调用自动打印功能 
    wdapp.quit();
    wdapp = null; 
  }

最后:

ActiveX控件的使用-js实现打印超市小票功能代码详解

注意:

首先要调整好ie浏览器的 internet选项-自定义级别(右边『activex控件和插件』下,能启用的都启用)

ActiveX控件的使用-js实现打印超市小票功能代码详解

『打印机脱机工作』一般是usb没有插好,换插口,重启打印机即可

有关activex控件,简单介绍下:activex是microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(com)。在有目录和其它支持的网络中,com变成了分布式com(dcom)。activex 控件是用于互联网的很小的程序,有时称为插件程序。它们会允许播放动画,或帮助执行任务,如在 microsoft update 安装安全更新,因此可以增强您的浏览体验。下面附本站免费下载地址:

ocx控件 [activex控件] 中文版

js之activex控件使用说明 new activexobject()

总结

以上就是本文关于activex控件的使用-js实现打印超市小票功能代码详解的全部内容,希望对大家有所帮助。如有问题可以随时留言指出,感谢朋友们对本站的支持!