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


Posted in Javascript onNovember 22, 2017

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

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

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 安装安全更新,因此可以增强您的浏览体验。下面附本站免费下载地址:

总结

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

Javascript 相关文章推荐
ExtJS PropertyGrid中使用Combobox选择值问题
Jun 13 Javascript
Jquery 一次处理多个ajax请求的代码
Sep 02 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
Mar 06 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
Aug 26 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
深入理解 JavaScript 中的 JSON
Apr 06 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
浅谈vue项目可以从哪些方面进行优化
May 05 Javascript
详解Vue单元测试case写法
May 24 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
如何用JS实现简单的数据监听
May 06 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
Nov 22 #Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
Nov 22 #Javascript
浅谈Angular 中何时取消订阅
Nov 22 #Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 #Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
Nov 22 #Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
Nov 22 #Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 #Javascript
You might like
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
php开发工具有哪五款
2015/11/09 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
浅谈javascript中的作用域
2012/04/07 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
Python 循环语句之 while,for语句详解
2018/04/23 Python
pandas重新生成索引的方法
2018/11/06 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
Python 复平面绘图实例
2019/11/21 Python
python dict如何定义
2020/09/02 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
pandas针对excel处理的实现
2021/01/15 Python
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
年度考核自我鉴定
2014/02/02 职场文书
党员自评材料范文
2014/12/17 职场文书
股份转让协议书范本
2015/01/27 职场文书
质检员岗位职责范本
2015/04/07 职场文书
golang json数组拼接的实例
2021/04/28 Golang
python 如何获取页面所有a标签下href的值
2021/05/06 Python
python关于集合的知识案例详解
2021/05/30 Python