JS+調用word打印功能實現在Webfrom客戶端pos機打印小票(58x210mm)

本文主要解決在web網頁上通過點擊某個按鈕現實打印小票的功能。修改於2015.8.15。
頁面html代碼:
<!DOCTYPE html>
<html>
<head runat="server">
    <title>調用Word打印機打印</title>
    <link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
    <div class="noprint">
        <input type="button" value="toPrinter " οnclick="doPrint();" />
    </div>
    <script type="text/javascript">
        function doPrint() {
            viewToWord("房間:903\r\n棟號:6\r\n樓層:9\r\n戶型\r\n時間:2011年9月16日");
        }
        var wdapp;
        var wddoc;
        function viewToWord(str) {
            try {
                // 創建ActiveXObject對象
                wdapp = new ActiveXObject("Word.Application");
            }
            catch (e) {
                /*
                * 如果拋異常,請檢查一下幾點:
                * 1.確保機器已安裝Office;
                * 2.已將本系統的站點名加入到IE的信任站點列表中;
                * 3.參考下文設置瀏覽器的安全;
                * 4.這是微軟的東西只能在ie下才能運行;
                * 5.尊重別人的成果,仔細閱讀每一個關鍵點。
                */
                console.log("無法調用Office對象,!", e)
                wdapp = null;
                return;
            }
            wdapp.Documents.Open("c:\\PrinterTemplate.doc"); //打開本地(客戶端)word模板
            wddoc = wdapp.ActiveDocument;
            wddoc.Bookmarks("Title").Range.Text = "要打印的標題";//找到Word中的Title標籤,替換其內容
            wddoc.Bookmarks("Content").Range.Text = str;
            //wdapp.ActiveDocument.ActiveWindow.View.Type = 1;
            wdapp.visible = false; //word模板是否可見
            wddoc.saveAs("c:\\PrinterTemp.doc"); //保存臨時文件word
            wdapp.Application.Printout(); //調用自動打印功能

            wdapp.quit();
            wdapp = null;
        }
    </script>
</body>
</html>


接下來設置Word模版:



選中“標題:”,選擇插入標籤,輸入標籤的名稱;


打印機打印的就是這個word上的內容了。

運行打印後會生成一個這樣的臨時文件,看到了嗎?標籤的內容被替換了。
內容:部分同理。
最後還要設置瀏覽器的安全


呵呵,這樣就可以在web客戶端下打印小票了!
此方法由http://blog.sina.com.cn/s/blog_692d0a650100klr4.html啓發!


發佈了40 篇原創文章 · 獲贊 57 · 訪問量 50萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章