网络打印

给家里人在网上报名考试,涉及到了一个报名表格打印感觉挺方便,不禁研究了一下网络打印原理。
B/S结构本身就导致了网络打印存在一定的特殊性。
 1.网络程序运行在服务器上,提供服务到用户的客户端浏览器中,而用户打印机在本地,直接导致了打印控制不是很灵活。
 2.打印格式如何灵活控制和定制等,也是开发过程中比较棘手的难题。

以前我曾给做过一个生产管理系统,开发工具是.NET,由于报表比较繁杂,使用的是水晶报表打印组件,配置比较麻烦页面负载也较大,而轻量级的开发不可能也使用水晶报表。

如果是针对已经生成好的页面内容进行打印,最好的办法还是使用JS调用IE直接打印,研究测试了一下效果还算比较完美。

首先定制好需要打印的页面,比如报名表格之类,在HTML中将所需打印的表格代码包括在<!--startprint--> 和 <!--endprint--> 之间,然后按钮直接调用打印函数

JS代码如下:
<script type="text/javascript">
        function preview()
        {
        bdhtml=window.document.body.innerHTML;
        sprnstr="<!--startprint-->";//需要打印的页面开始部分
        eprnstr="<!--endprint-->";//需要打印的页面结束部分
        prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
        prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
        window.document.body.innerHTML=prnhtml;
        window.print();
        }
</script>

最终打印出来的和页面展示的效果完全一致,IE打印的缺点就是打印前必须将结果页面生成好。

posted on 2013-05-31 21:44  lmx22  阅读(200)  评论(0编辑  收藏  举报

导航