博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 打印控件使用方法
阅读量:7044 次
发布时间:2019-06-28

本文共 2195 字,大约阅读时间需要 7 分钟。

打印的效果及控制性虽然不是很好,但是也能勉强使用,应付一般的打印还是 可以的了。

代码如下所示: 
代码 

  复制代码 代码如下:

//调用PrintControl.ExecWB(?,?)实现直接打印和打印预览功能。(直接用系统提供的print()方法打印无法隐藏某些区域) //preview:是否显示预览。null/false:不显示,true:显示 function printPage(preview) { try { var content=window.document.body.innerHTML; var oricontent=content; while(content.indexOf("{$printhide}")>=0) content=content.replace("{$printhide}","style='display:none'"); if(content.indexOf("ID=\"PrintControl\"")<0) content=content+""; window.document.body.innerHTML=content; //PrintControl.ExecWB(7,1)打印预览,(1,1)打开,(4,1)另存为,(17,1)全选,(10,1)属性,(6,1)打印,(6,6)直接打印,(8,1)页面设置 if(preview==null||preview==false) PrintControl.ExecWB(6,1); else PrintControl.ExecWB(7,1); //OLECMDID_PRINT=7; OLECMDEXECOPT_DONTPROMPTUSER=6/OLECMDEXECOPT_PROMPTUSER=1 window.document.body.innerHTML=oricontent; } catch(ex){ alert("执行Javascript脚本出错。"); } } function printConten(preview, html) { try { var content=html; var oricontent=window.document.body.innerHTML; while(content.indexOf("{$printhide}")>=0) content=content.replace("{$printhide}","style='display:none'"); if(content.indexOf("ID=\"PrintControl\"")<0) content=content+""; window.document.body.innerHTML=content; //PrintControl.ExecWB(7,1)打印预览,(1,1)打开,(4,1)另存为,(17,1)全选,(10,1)属性,(6,1)打印,(6,6)直接打印,(8,1)页面设置 if(preview==null||preview==false) PrintControl.ExecWB(6,1); else PrintControl.ExecWB(7,1); //OLECMDID_PRINT=7; OLECMDEXECOPT_DONTPROMPTUSER=6/OLECMDEXECOPT_PROMPTUSER=1 window.document.body.innerHTML=oricontent; } catch(ex){ alert("执行Javascript脚本出错。"); } }

上面两个放在一个Js文件中,在页面内容中通过应用该脚本文件并调用进一步封装的函数即可打印指定部分的内容: 

  复制代码 代码如下:

打印的效果大致如下图所示,如果打印的页面在框架页面中,那么需要选定“仅打印选定框架”的选项。 

采用此种方法,不需要安装任何控件,具有很好的兼容优势,不过出来的报表内容,好像控制起来会比较麻烦一些,特别对于一些报表方面的打印,需要输出复杂的内容是,也有一定的缺陷,但总体来说,也是一个较好的选择。

  后来在需要做一些证件套打方面的工作,这个控件就做不到了,因此需要一种方法或者控件,能够较好处理套打方面的事情。

  无意间,发现一个比较好的打印控件,支持各种格式的打印,还有我关心的证件套打功能,功能强大,使用也很简单的,非常值得推荐。

  控件的相关地址:

  控件下载

  控件博客介绍:

  应用这个控件,普通报表的打印效果如下所示:

上面两个报表的打印其实都差不多,都是打印部分的HTML内容,不过后者看起来要好一点,而且提供很完善的报表功能设置。

  代码大致如下所示。

代码 

  复制代码 代码如下:

     

很多时候,我们也没的内容,都是通过CSS来控制美观的,所以有时候,我们打印部分HTML,没有这些样式的话,那么出来的Table格式和字体,可能都会发生变化,不太好看。那么就需要进行HTML的样式设置。 

如果给打印内容设置了样式,那么出来的界面效果就好很多了。

设置样式的代码如下所示。 

代码 

  复制代码 代码如下:

 

出处:http://www.educity.cn/develop/687480.html

转载地址:http://fxqal.baihongyu.com/

你可能感兴趣的文章
Lazy Load, 延迟加载图片的 jQuery 插件【备忘】
查看>>
Linux下nagios网络监控与/proc/net/tcp文件详解
查看>>
JavaBean 基础概念、使用实例及代码分析
查看>>
(转)typedef 函数指针的用法
查看>>
谈Mysql索引
查看>>
锁标记
查看>>
HDUOJ-----A == B ?
查看>>
深入浅出学习Hibernate框架(二):JDBC基础操作
查看>>
面试题 Comparable、Comparator 比较
查看>>
js图片延迟加载
查看>>
asynDBCenter(不断跟新)
查看>>
STL--集和多集(set/multiset)
查看>>
【struts2】Action的生命周期
查看>>
net start mysql启动mysql,提示发生系统错误 5 拒绝访问 解决方法
查看>>
【转】MVC4验证用户登录特性实现方法
查看>>
[CLR via C#]7. 常量和字段
查看>>
SDUT 1124-飞跃荒野(三维BFS)
查看>>
wcf 请考虑增加操作超时
查看>>
【设计模式】简单工厂模式
查看>>
[LeetCode] Binary Tree Paths 二叉树路径
查看>>