本文主要解决在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 " onclick="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启发!