Web打印解决方案之普通报表打印功能

网友投稿 251 2023-07-08


Web打印解决方案之普通报表打印功能

做过很多的Web项目,大多数在打印页面内容的时候,采用的都是通过javascript调用系统内置的打印方法进行打印,也就是调用PrintControl.ExecWB(?,?)实现直接打印和打印预览功能。打印的效果及控制性虽然不是很好,但是也能勉强使用,应付一般的打印还是可以的了。

代码如下所示:

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://CodeHighlighter.com/-->//调用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/OLECMDbKMiMtobjGEXECOPT_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文件中,在页面内容中通过应用该脚本文件并调用进一步封装的函数即可打印指定部分的内容:

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

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

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

代码

以上所述是给大家介绍的Web打印解决方案之普通报表打印功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现FTP批量大文件上传下载篇2
下一篇:Web打印解决方案之证件套打的实现思路
相关文章

 发表评论

暂时没有评论,来抢沙发吧~