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 相关文章推荐
javascript 词法作用域和闭包分析说明
Aug 12 Javascript
Javascript Request获取请求参数如何实现
Nov 28 Javascript
js从Cookies里面取值的简单实现
Jun 30 Javascript
JavaScript中window.showModalDialog()用法详解
Dec 18 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
基于easyui checkbox 的一些操作处理方法
Jul 10 Javascript
微信小程序使用wxParse解析html的方法教程
Jul 06 Javascript
JS实现图片旋转动画效果封装与使用示例
Jul 09 Javascript
一篇文章,教你学会Vue CLI 插件开发
Apr 17 Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 Javascript
js实现无限瀑布流实例方法
Sep 16 Javascript
在vant中使用时间选择器和popup弹出层的操作
Nov 04 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常用函数的用法详解
2013/05/10 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
thinkphp实现数组分页示例
2014/04/13 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
javascript表单正则应用
2017/02/04 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
Python 字符串定义
2009/09/25 Python
Python 开发Activex组件方法
2009/11/08 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
考试作弊被抓检讨书
2014/01/10 职场文书
班组长岗位职责
2014/03/03 职场文书
四风问题查摆材料
2014/08/25 职场文书
Python实现老照片修复之上色小技巧
2021/10/16 Python
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS