Web打印总结〔zz〕

1.http://csd.nenu.edu.cn/study/article.asp?id=300&classid=1
打印网页上的打印按钮之类的内容:

首先在网页中添加:

     <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打印,需要注意的情况如下:

必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行...设置成提示或者启用,否则会报错,导致不可用。
如果在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,效果最好。

2.
http://bbs.0415w.com/bbs/read.php?tid=311&fpage=5 
第一个:
  Web打印的好东西:ScriptX.cab,有了这东西,就可以在网页中使用JavaScript进行打印设置了。
在html的head中加入
<OBJECT id="factory" style="DISPLAY: none" codeBase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=6,1,430,5"
  classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" VIEWASTEXT>
</OBJECT>
并使用script写
Sub SetPrint()
factory.printing.header = "&w&b第 &p 页,共 &P 页" '//设定页首的文字
factory.printing.footer = "&d"   '//设定页尾的文字
factory.printing.portrait = true '//设定为直印
factory.printing.leftMargin = 0.1 '//设定左边界
factory.printing.topMargin = 0.3   ' //设定上边界
factory.printing.rightMargin = 0.1 '//设定友边界
factory.printing.bottomMargin = 0.4 '//设定下边界
factory.printing.print(false) '//打印其(true)为显示打印询问窗口若为false则不出现打印询问窗口
End Sub
只要呼叫SetPrint的Sub就可以更改打印的设定
但有二个限制,一个是IE的版本要五以上,二是使用者要将该网站加入完全信任网站才可使用,否则会有错误产生


第二个:
<script language="javascript">
  function printsetup(){
  // 打印页面设置
  wb.execwb(8,1);
  }
  function printpreview(){
  // 打印页面预览
    
  wb.execwb(7,1);
     
    
  }

  function printit()
  {
  if (confirm('确定打印吗?')) {
  wb.execwb(6,6)
  }
  }
  </script>
</head>
<body>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"

height=0 id=wb name=wb width=0></OBJECT>
<input type=button name=button_print value="打印"

onclick="javascript:printit()">
<input type=button name=button_setup value="打印页面设置"

onclick="javascript:printsetup();">
<input type=button name=button_show value="打印预览"

onclick="javascript:printpreview();">
<input type=button name=button_fh value="关闭"

onclick="javascript:window.close();">


第三个:
用FileSystem组件实现WEB应用中的本地特定打印
<script Language=VBScript>
function print_onclick //打印函数
dim label
label=document.printinfo.label.value //获得HTML页面的数据
set objfs=CreateObject("Scripting.FileSystemObject") //创建FileSystem组件对象的实例
set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立与打印机的连接
objprinter.Writeline("__________________________________") //输出打印的内容
objprinter.Writeline("│ │")
objprinter.Writeline("│ 您打印的数据是:"&label& " │”)
objprinter.Writeline("│ │")
objprinter.Writeline("│_________________________________│")
objprinter.close //断开与打印机的连接
set objprinter=nothing
set objfs=nothing // 关闭FileSystem组件对象
end function
</script>
服务器端脚本:
<%………
set conn=server.CreateObject ("adodb.connection")
conn.Open "DSN=name;UID=XXXX;PWD=XXXX;"
set rs=server.CreateObject("adodb.recordset")
rs.Open(“select ……”),conn,1,1
……….%> //与数据库进行交互
HTML页面编码:
<HTML>
………
<FORM ID=printinfo NAME="printinfo" >
<INPUT type="button" value="打印>>" id=print name=print > //调用打印函数
<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据
………
</HTML>


3浮动帧打印
<SCRIPT LANGUAGE=javascript>
function button1_onclick() {
var odoc=window.iframe1.document;
var r=odoc.body.createTextRange();
var stxt=r.htmlText;
alert(stxt)
var pwin=window.open("","print");
pwin.document.write(stxt);
pwin.print();
}
</SCRIPT>


posted @ 2005-06-17 23:58  小白天地  阅读(616)  评论(0)    收藏  举报