頁面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啓發!