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 相关文章推荐
对联广告js flash激活
Oct 19 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
Feb 11 Javascript
window.location.hash 属性使用说明
Mar 20 Javascript
Jquery之Ajax运用 学习运用篇
Sep 26 Javascript
jquery统计复选框选中示例
Nov 05 Javascript
javascript常用函数归纳整理
Oct 31 Javascript
jquery遍历table的tr获取td的值实现方法
May 19 Javascript
Js利用prototype自定义数组方法示例
Oct 20 Javascript
vue-scroller记录滚动位置的示例代码
Jan 17 Javascript
如何基于js判断浏览器版本
Feb 20 Javascript
vue实现图片按比例缩放问题操作
Aug 11 Javascript
vue如何在data中引入图片的正确路径
Jun 05 Vue.js
前端必备插件之纯原生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 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
PHP编程计算文件或数组中单词出现频率的方法
2017/05/22 PHP
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
九种原生js动画效果
2015/11/11 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
在Python中处理XML的教程
2015/04/29 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
Python IDLE入门简介
2017/12/08 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
python的sorted用法详解
2019/06/25 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
python中什么是面向对象
2020/06/11 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
Ibatis如何调用存储过程
2015/05/15 面试题
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
会计实习生工作总结的自我评价
2013/10/07 职场文书
幼儿园春游活动方案
2014/01/19 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
党员干部学习心得体会
2016/01/23 职场文书
学前班教学反思
2016/02/24 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
python字符串的多行输出的实例详解
2021/06/08 Python
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python