日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【JS】通过JS实现超市小票打印功能——ActiveX控件

發(fā)布時(shí)間:2023/12/13 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 【JS】通过JS实现超市小票打印功能——ActiveX控件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

應(yīng)客戶的需求= = ,要在網(wǎng)頁端實(shí)現(xiàn)打印小票的功能
先來一張打印出的小票效果圖(合計(jì)明顯不對,因?yàn)橛行薷挠唵喂δ埽埜魑缓雎裕?/p>

  

用什么方法實(shí)現(xiàn)呢:

    我想應(yīng)該是有三種吧

    1.用第三方的瀏覽器控件(這個(gè)好似比較方便,我的老師也是這樣建議我)向大家推薦一個(gè) Lodop打印控件

    2.用CSS寫好模板,然后直接用頁面打印的方法(應(yīng)該是這樣吧)

      (以上兩種還沒有嘗試,這兩天陸續(xù)嘗試)

    3.用微軟自己的ActiveX控件(ActiveX控件可以實(shí)現(xiàn)調(diào)用本地的文件等操作(之前試過調(diào)用cmd,實(shí)現(xiàn)shutdown -s -t,在網(wǎng)頁控制電腦的定時(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對word模板進(jìn)行 打開、賦值、打印操作

一、編輯『word小票模板』

    1.以word2007為例,首先排好大致的樣式

      

    2.用『書簽』進(jìn)行標(biāo)記定位

      選中要添加書簽的文字區(qū)域-點(diǎn)擊『書簽』-填寫書簽名-點(diǎn)擊『添加』-『定位』可以查看此書簽的位置

         

二、js

直接上源代碼吧:

<input type="button" value="toPrinter " onclick="viewToWord();" />  
 1 function viewToWord() {
 2         //當(dāng)前時(shí)間
 3         var Time;
 4         var today = new Date();
 5         Time = today.toLocaleString();
 6         
 7         try {  
 8             // 創(chuàng)建ActiveXObject對象  
 9             wdapp = new ActiveXObject("Word.Application");  
10         }  
11         catch (e) {  
12             console.log("無法調(diào)用Office對象,!", e)  
13             wdapp = null;  
14             return;  
15         }
16         wdapp.Documents.Open("f:\PrinterTemplate1.doc"); //打開本地(客戶端)word模板
17         wddoc = wdapp.ActiveDocument;  
18         wddoc.Bookmarks("OrderNum").Range.Text = "201509080959" + "
";
19         wddoc.Bookmarks("OrderName").Range.Text = "鄭斌" + "
";  
20         wddoc.Bookmarks("OrderAddress").Range.Text = "www.cnblogs.com/zhengbin" + "
";
21         wddoc.Bookmarks("OrderPhoneNum").Range.Text = "QQ:1746788394" + "
";
22         wddoc.Bookmarks("OrderDaocanTime").Range.Text = "10:00-11:00" + "
";
23         wddoc.Bookmarks("OrderTime").Range.Text = "09-08 10:15";
24         //添加表格
25         var myTable = wddoc.Tables.Add (wddoc.Bookmarks("OrderCart").Range,3,3);//(賦值區(qū)域,行數(shù),列數(shù))
26         //隱藏邊框
27         var table=wdapp.ActiveDocument.Tables(1);
28         table.Borders(-1).LineStyle=0;
29         table.Borders(-2).LineStyle=0;
30         table.Borders(-3).LineStyle=0;
31         table.Borders(-4).LineStyle=0;
32         table.Borders(-5).LineStyle=0;
33         table.Borders(-6).LineStyle=0;
34         for(i=1;i<=3;i++){//行
35             //第一列
36             with (myTable.Cell(i,1).Range){
37                 font.Size = 8;//調(diào)整字體大小
38                 InsertAfter("博客園"+i);//插入的內(nèi)容
39             }
40             //第二列
41             with(myTable.Cell(i,2).Range){
42                 font.Size = 8;
43                 InsertAfter(i);
44                 ParagraphFormat.Alignment=1;//表格內(nèi)容對齊:0-左對齊 1-居中 2-右對齊
45             }
46             //第三列
47             with(myTable.Cell(i,3).Range){
48                 font.Size = 8;
49                 InsertAfter("無價(jià)");
50                 ParagraphFormat.Alignment=2;
51             }
52         }
53         wddoc.saveAs("f:\PrinterTemp_cnblogs.doc"); //保存臨時(shí)文件word
54         wddoc.Bookmarks("TotalPrice").Range.Text = "無價(jià)" + "
";
55         wddoc.Bookmarks("Time").Range.Text = Time; 
56         //wdapp.ActiveDocument.ActiveWindow.View.Type = 1;
57         wdapp.visible = false; //word模板是否可見  
58         wdapp.Application.Printout(); //調(diào)用自動(dòng)打印功能  
59         wdapp.quit();
60         wdapp = null;  
61     }

  最后:

    

注意:

    首先要調(diào)整好IE瀏覽器的 Internet選項(xiàng)-自定義級別(右邊『ActiveX控件和插件』下,能啟用的都啟用)

    

    『打印機(jī)脫機(jī)工作』一般是usb沒有插好,換插口,重啟打印機(jī)即可

感謝以下幾位博主的精彩博文:

  http://kuangbaoxu.iteye.com/blog/193311

  http://baser.blog.51cto.com/4153192/844742

  http://xiaosuncunzhang.blog.51cto.com/317407/584844

  http://blog.csdn.net/weizengxun/article/details/6870880

  http://blog.sina.com.cn/s/blog_692d0a650100klr4.html

總結(jié)

以上是生活随笔為你收集整理的【JS】通过JS实现超市小票打印功能——ActiveX控件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。