[转]我也来谈WEB打印

[转]我也来谈WEB打印

今天看到 一篇不错的web打印的文章,就收藏一下,大家别骂我转来转去。

原文如下:

我也来谈WEB打印

呵呵,菜鸟一个,只会用IE自带的打印功能,感觉一般也够用了,在这里算是提醒一下大家使用时要注意的问题吧。

首先在网页中添加:

     <OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
      VIEWASTEXT>
     </OBJECT>

然后就可以依次加入功能按钮了:

<input onclick="document.all.WebBrowser.ExecWB(6,1)" type="button" value="打印"> <input onclick="document.all.WebBrowser.ExecWB(6,6)" type="button" value="直接打印">
     <input onclick="document.all.WebBrowser.ExecWB(8,1)" type="button" value="页面设置">
     <input onclick="document.all.WebBrowser.ExecWB(7,1)" type="button" value="打印预览">&nbsp;<INPUT type="button" value="关闭窗口" onclick="javascript:window.close()">

将这两块东西放到<center class=noprint></center>就不会打印这些按钮了。当然要定义noprint了:

<style media="print">.Noprint { DISPLAY: none }</style>只要把不想打印的东西的css设置成noprint就可以了。

现在就实现了基本的web打印,需要注意的情况如下:

  1. 必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行...设置成提示或者启用,否则会报错,导致不可用。
  2. 如果在vs.net编辑环境下编辑该页面,它经常自动的给object添加多余的参数,有了这些东西,打印就会出错,所以要记得最后保存的时候删除它们。

为了简便并且达到最好的效果,我们可以在一个页面实现编辑和打印,这时候会需要很多的textbox,我们把它的css设置成.edittext
{
 overflow-y:visible;
 width: 100%;
 border-top: none;
 border-right: none;
 border-bottom: none;
 border-left: none;
}就可以实现在打印的时候不显示边框和multiline的textbox不显示滚动条了。

还有一些小经验就是在设置标格宽度的时候,对于A4纸张,横打用920,竖打用640,效果最好。

呵呵,以上都是我的一些经验之谈,可能有些错误或者大家有更好的办法,欢迎批评指正。

你可能感兴趣的:([转]我也来谈WEB打印)