`

批量打印之smsx.cab打印

    博客分类:
  • JS
阅读更多

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

 

分享到:
评论

相关推荐

    smsx.cab下载及使用说明

    Web打印控件smsx.cab使用说明 在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab。  使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局,包括...

    smsx.cab 最新

    smsx.cab 最新版本经过测试可以使用

    IE打印控件smsx.cab

    IE打印控件smsx.cab 免费打印控件 在jsp asp php中轻松调用,内含示例代码

    smsx.cab控件打印安装包.zip

    smsx.cab是WEB页面打印控件,此插件可设置Web打印时的页眉页脚,IE浏览器下使用smsx.cab组件实现打印和打印预览功能,可以通过属性设置横向竖向打印模式,打印页眉等打印格式。网上有详细的使用方法。

    ScriptX(smsx.cab) 打印控件教程

    Asp.Net(IE) ScriptX/smsx.cab 打印控制插件 如何使用详细教程 注:该插件只限IE使用。 当前示例版本:ScriptX version 6,6,440,26 第一步: 将smsx.cab 复制到.net工程中,如send_js 文件夹中。 第二步: ...

    web 打印包smsx.cab

    实现打印控制,使用javaScript。 可以实现基本的打印控制

    Web打印控件smsx.cab

    Web打印控件smsx.cab

    Web打印控件smsx.cab下载以及使用说明

    在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab。  使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局,包括页面布局、js 的引用、smsx.cab...

    scriptx打印控件(smsx.cab,smsx.exe)

    java web B/S架构中使用scriptx实现客户端浏览器打印,代码在我的博客里。

    smsx.cab 打印控件下载

    找了好久,好像与scriptX.cab相似,功能应该差不多。这个可以用,已试过。使用方法可上网查询,很多

    打印插件smsx.cab

    控制打印设置的插件,里面包含最新的下载包及简单使用教程

    smsx.cab下载和使用说明

    在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab。  使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局,包括页面布局、js 的引用、smsx.cab...

    批量打印之jquery局部打印和smsx.cab打印联合使用

    NULL 博文链接:https://1017401036.iteye.com/blog/2395996

    打印插件smsx.cab技术文档

    插件技术文档插件技术文档插件技术文档插件技术文档插件技术文档

    smsx.cab下载以及使用示例

     使用方法:一般会先定义一个用于打印的母版页 Print Master 在母版页上做好布局 包括页面布局 js 的引用 smsx cab控件加载 打印和预览按钮的放置 母版页 Print Master :"&gt;在项目开发中 经常会用到页面打印的...

    Web网页横向打印(smsx.cab)

    NULL 博文链接:https://bluebattle.iteye.com/blog/745147

    smsx.rar打印控件

    smsx.rar.打印控件。smsx 打印控件.

    smsx cab控件可双击安装版

    IE下使用smsx.cab组件实现打印和打印预览功能,可以通过属性设置横向竖向打印,打印页眉等打印格式。是免费版,不支持设置打印机和预览效果,软件集成用比较方便。

    smsx.cab 图片处理控件

    smsx是图片处理控件 可以各种图片 如jgp,tif,bmp等

Global site tag (gtag.js) - Google Analytics