smsx.cab插件实现打印的依赖的是ActiveX控件,所以缺点很明显:页面得允许运行ActiveX控件,而ActiveX控件只有IE支持,所以局限性很强。
页面基本结构:
<div id="floatDiv" align="right"> <input style="color: #fff; font-size: 16px" onclick="printTures();" type="button" value="打印"/> <input style="color: #fff; font-size: 16px" onclick="printpage();" type="button" value="打印预览"/> <input style="color: #fff; font-size: 16px" onclick="pageReSet();" type="button" value="页面设置"/> </div> <div id="page"></div>
JS实现:
//打击“打印”按钮时触发该事件 function printTures(){ $("body").append("<OBJECT id=\"factory\" codeBase=\"redist/smsx.cab#Version=6,3,434,26\" height=\"0\" width=\"0\" classid=\"clsid:1663ed61-23eb-11d2-b92f-008048fdd814\" viewastext></OBJECT>"); //取消打印区域的浮动 var printdiv = document.getElementById("page"); printdiv.style.overflow=""; printBase();//进行打印设置 //将打印按钮和打印预览按钮隐藏掉 document.getElementById("floatDiv").style.display = "none";// 隐藏按钮 //进行打印:无确认打印,true时打印前需进行确认 factory.printing.Print(false); //打印完成返回项目列表 $("#factory").remove(); } //打击“打印预览”按钮时触发该事件 function printpage(){ $("body").append("<OBJECT id=\"factory\" codeBase=\"redist/smsx.cab#Version=6,3,434,26\" height=\"0\" width=\"0\" classid=\"clsid:1663ed61-23eb-11d2-b92f-008048fdd814\" viewastext></OBJECT>"); //取消打印区域的浮动 var printdiv = document.getElementById("page"); printdiv.style.overflow=""; printBase();//进行打印设置 //将打印按钮和打印预览按钮隐藏掉 document.getElementById("floatDiv").style.display = "none";// 隐藏按钮 //进行预览 factory.printing.Preview(); //打印完成返回项目列表 printdiv.style.overflow="auto"; //将打印按钮和打印预览按钮隐藏掉 document.getElementById("floatDiv").style.display = "block";// 隐藏按钮 $("#factory").remove(); } /**页面设置 */ function pageReSet(){ printBase(); factory.printing.PageSetup(); } // 用于设置打印参数 function printBase() { factory.printing.header = ""; // 页眉 factory.printing.footer = ""; // 页脚 factory.printing.portrait = true; // true为纵向打印,false为横向打印 factory.printing.leftMargin = 19.05; factory.printing.topMargin = 0; factory.printing.rightMargin = 0; factory.printing.bottomMargin = 0; }
注意: <Object>标签中的codeBase=\"redist/smsx.cab#Version=6,3,434,26\"目录下得有对应的文件
用这个插件唯一的感受就是:调顺了很好使,调不顺了很麻烦。一旦出问题了调试起来也麻烦,因为它跟浏览器挂钩它还要往操作系统中写东西,这就牵扯到安全性问题了,反过来若是浏览器或操作系统的设置有变化它也可能被影响到,所以对于它来说“上午用的好好的下午就不能用了是常态”。
可能碰到的问题:若是页面上同时存在“打印”和“打印按钮”,且两个按钮都点击了(如先点打印不刷新的情况下再点打印预览),那么点第二个按钮时可能会报错:only one scriptx object can be used per browser window。解决方法可以参考这个链接:http://blog.csdn.net/zhao19861029/article/details/8283347
跟Jquery打印一样,说下优缺点:
缺点:兼容性不好,只能IE使用;容易出问题,且调试麻烦;
优点:可预览;配置好之后打印时不会弹出打印框让选打印机,也可以设置页眉页脚、页边距;
最后贴几个对smsx.cab插件有帮助的链接:
1、 针对web打印控件的使用心得 :http://blog.csdn.net/zhao19861029/article/details/8283347
2、IE下使用smsx.cab组件实现打印和打印预览功能:http://blog.csdn.net/zhao19861029/article/details/8270194
3、ScriptX,smsx打印控件安装的终极解决办法:http://blog.csdn.net/yjlwl1213/article/details/3929848
相关推荐
Web打印控件smsx.cab使用说明 在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab。 使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局,包括...
smsx.cab 最新版本经过测试可以使用
IE打印控件smsx.cab 免费打印控件 在jsp asp php中轻松调用,内含示例代码
smsx.cab是WEB页面打印控件,此插件可设置Web打印时的页眉页脚,IE浏览器下使用smsx.cab组件实现打印和打印预览功能,可以通过属性设置横向竖向打印模式,打印页眉等打印格式。网上有详细的使用方法。
Asp.Net(IE) ScriptX/smsx.cab 打印控制插件 如何使用详细教程 注:该插件只限IE使用。 当前示例版本:ScriptX version 6,6,440,26 第一步: 将smsx.cab 复制到.net工程中,如send_js 文件夹中。 第二步: ...
实现打印控制,使用javaScript。 可以实现基本的打印控制
Web打印控件smsx.cab
在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab。 使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局,包括页面布局、js 的引用、smsx.cab...
java web B/S架构中使用scriptx实现客户端浏览器打印,代码在我的博客里。
找了好久,好像与scriptX.cab相似,功能应该差不多。这个可以用,已试过。使用方法可上网查询,很多
控制打印设置的插件,里面包含最新的下载包及简单使用教程
在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab。 使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局,包括页面布局、js 的引用、smsx.cab...
NULL 博文链接:https://1017401036.iteye.com/blog/2395996
插件技术文档插件技术文档插件技术文档插件技术文档插件技术文档
使用方法:一般会先定义一个用于打印的母版页 Print Master 在母版页上做好布局 包括页面布局 js 的引用 smsx cab控件加载 打印和预览按钮的放置 母版页 Print Master :">在项目开发中 经常会用到页面打印的...
NULL 博文链接:https://bluebattle.iteye.com/blog/745147
smsx.rar.打印控件。smsx 打印控件.
IE下使用smsx.cab组件实现打印和打印预览功能,可以通过属性设置横向竖向打印,打印页眉等打印格式。是免费版,不支持设置打印机和预览效果,软件集成用比较方便。
smsx是图片处理控件 可以各种图片 如jgp,tif,bmp等