ActiveX控件的使用-js實(shí)現(xiàn)打印超市小票功能代碼詳解
·應(yīng)客戶的需求= = ,要在網(wǎng)頁(yè)端實(shí)現(xiàn)打印小票的功能
·先來一張打印出的小票效果圖(合計(jì)明顯不對(duì),因?yàn)橛行薷挠唵喂δ?,?qǐng)各位忽略)
用什么方法實(shí)現(xiàn)呢:
我想應(yīng)該是有三種吧
1.用第三方的瀏覽器控件(這個(gè)好似比較方便,我的老師也是這樣建議我)向大家推薦一個(gè) Lodop打印控件
2.用CSS寫好模板,然后直接用頁(yè)面打印的方法(應(yīng)該是這樣吧)
以上兩種還沒有嘗試,這兩天陸續(xù)嘗試)
3.用微軟自己的ActiveX控件(ActiveX控件可以實(shí)現(xiàn)調(diào)用本地的文件等操作(之前試過調(diào)用cmd,實(shí)現(xiàn)shutdown -s -t,在網(wǎng)頁(yè)控制電腦的定時(shí)關(guān)機(jī)))
當(dāng)然這種方法的缺點(diǎn)也很明顯:限操作系統(tǒng)-因?yàn)槭俏④浀臇|西只能Windows下,限瀏覽器-因?yàn)锳ctiveX也只能在IE瀏覽器下。所以局限性比較大
實(shí)現(xiàn)過程:
1.編輯『word小票模板』,要用到word中『書簽』這個(gè)工具(通過『書簽』的定位,js就可以操作word在『書簽』指定的位置進(jìn)行 修改、寫入內(nèi)容)
2.在js對(duì)word模板進(jìn)行 打開、賦值、打印操作
一、編輯『word小票模板』
1.以word2007為例,首先排好大致的樣式
二、js
直接上源代碼吧:
<input type="button" value="toPrinter " onclick="viewToWord();" />
- Hide code function viewToWord() { //當(dāng)前時(shí)間 var Time; var today = new Date(); Time = today.toLocaleString(); try { // 創(chuàng)建ActiveXObject對(duì)象 wdapp = new ActiveXObject("Word.Application"); } catch (e) { console.log("無法調(diào)用Office對(duì)象,!", 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);//(賦值區(qū)域,行數(shù),列數(shù)) //隱藏邊框 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;//調(diào)整字體大小 InsertAfter("博客園"+i);//插入的內(nèi)容 } //第二列 with(myTable.Cell(i,2).Range){ font.Size = 8; InsertAfter(i); ParagraphFormat.Alignment=1;//表格內(nèi)容對(duì)齊:0-左對(duì)齊 1-居中 2-右對(duì)齊 } //第三列 with(myTable.Cell(i,3).Range){ font.Size = 8; InsertAfter("無價(jià)"); ParagraphFormat.Alignment=2; } } wddoc.saveAs("f:\\PrinterTemp_cnblogs.doc"); //保存臨時(shí)文件word wddoc.Bookmarks("TotalPrice").Range.Text = "無價(jià)" + "\n"; wddoc.Bookmarks("Time").Range.Text = Time; //wdapp.ActiveDocument.ActiveWindow.View.Type = 1; wdapp.visible = false; //word模板是否可見 wdapp.Application.Printout(); //調(diào)用自動(dòng)打印功能 wdapp.quit(); wdapp = null; }
最后:
注意:
首先要調(diào)整好IE瀏覽器的 Internet選項(xiàng)-自定義級(jí)別(右邊『ActiveX控件和插件』下,能啟用的都啟用)
『打印機(jī)脫機(jī)工作』一般是usb沒有插好,換插口,重啟打印機(jī)即可
有關(guān)ActiveX控件,簡(jiǎn)單介紹下:ActiveX是Microsoft對(duì)于一系列策略性面向?qū)ο蟪绦蚣夹g(shù)和工具的稱呼,其中主要的技術(shù)是組件對(duì)象模型(COM)。在有目錄和其它支持的網(wǎng)絡(luò)中,COM變成了分布式COM(DCOM)。ActiveX 控件是用于互聯(lián)網(wǎng)的很小的程序,有時(shí)稱為插件程序。它們會(huì)允許播放動(dòng)畫,或幫助執(zhí)行任務(wù),如在 Microsoft Update 安裝安全更新,因此可以增強(qiáng)您的瀏覽體驗(yàn)。下面附本站免費(fèi)下載地址:
js之ActiveX控件使用說明 new ActiveXObject()
總結(jié)
以上就是本文關(guān)于ActiveX控件的使用-js實(shí)現(xiàn)打印超市小票功能代碼詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。如有問題可以隨時(shí)留言指出,感謝朋友們對(duì)本站的支持!
相關(guān)文章
JS實(shí)現(xiàn)的另類手風(fēng)琴效果網(wǎng)頁(yè)內(nèi)容切換代碼
這篇文章主要介紹了JS實(shí)現(xiàn)的另類手風(fēng)琴效果網(wǎng)頁(yè)內(nèi)容切換代碼,通過JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素樣式屬性實(shí)現(xiàn)手風(fēng)琴效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09Typescript中的數(shù)據(jù)類型實(shí)例總結(jié)
ts中數(shù)據(jù)類型的定義是重點(diǎn)之一,所以必須明確ts有哪些數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于Typescript中數(shù)據(jù)類型的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03JavaScript學(xué)習(xí)筆記--常用的互動(dòng)方法
本文對(duì)JavaScript中常用的互動(dòng)方法進(jìn)行實(shí)例分析介紹,圖文并茂,有需要的朋友可以看下2016-12-12js es6系列教程 - 基于new.target屬性與es5改造es6的類語(yǔ)法
下面小編就為大家?guī)硪黄猨s es6系列教程 - 基于new.target屬性與es5改造es6的類語(yǔ)法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09uni-app使用countdown插件實(shí)現(xiàn)倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了uni-app使用countdown插件實(shí)現(xiàn)倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11JavaScript獲取鼠標(biāo)移動(dòng)時(shí)的坐標(biāo)(兼容IE8、chome谷歌、Firefox)
這篇文章主要介紹了JavaScript獲取鼠標(biāo)移動(dòng)時(shí)的坐標(biāo)(兼容IE8、chome谷歌、Firefox瀏覽器),需要的朋友可以參考下2014-09-09js簡(jiǎn)易namespace管理器 實(shí)例代碼
js簡(jiǎn)易namespace管理器 實(shí)例代碼,需要的朋友可以參考一下2013-06-06原生JS運(yùn)動(dòng)實(shí)現(xiàn)輪播圖
這篇文章主要為大家詳細(xì)介紹了原生JS運(yùn)動(dòng)實(shí)現(xiàn)輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01