当前位置: 代码迷 >> JavaScript >> jsp页面打印效能
  详细解决方案

jsp页面打印效能

热度:126   发布时间:2012-11-25 11:44:31.0
jsp页面打印功能

?收藏
重点:
<OBJECT?? id=WebBrowser?? classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2?? height=0?? width=0?? VIEWASTEXT>
</OBJECT>
<input?? type=button?? value=打印?????? onclick= "document.all.WebBrowser.ExecWB(6,1) "?? class= "NOPRINT ">
<input?? type=button?? value=直接打印?? onclick= "document.all.WebBrowser.ExecWB(6,6) "?? class= "NOPRINT ">
<input?? type=button?? value=页面设置?? onclick= "document.all.WebBrowser.ExecWB(8,1) "?? class= "NOPRINT ">
<input?? type=button?? value=打印预览?? onclick= "document.all.WebBrowser.ExecWB(7,1) "?? class= "NOPRINT ">

注意:
1、CSS对打印的控制:
<!--media=print?? 这个属性可以在打印时有效-->
<style?? media=print>
.Noprint{display:none;}
.PageNext{page-break-after:?? always;}
</style>

Noprint样式可以使页面上的打印按钮等不出现在打印页面上,这一点非常重要,因为它可以用最少的代码完成最需要的功能

PageNext样式可以设置分页,在需要分页的地方 <div?? class= "PageNext "> </div> 就OK了,呵呵

2、表格线粗细的设置,更是通过样式表:

<style>
.tdp
{
??? border-bottom:?? 1?? solid?? #000000;
??? border-left:?? 1?? solid?? #000000;
??? border-right:?? 0?? solid?? #ffffff;
??? border-top:?? 0?? solid?? #ffffff;
}
.tabp
{
??? border-color:?? #000000;

??????? border-collapse:collapse;
}
</style>

或者:

<style>
.TdCs1?? {
??????? border:solid?? windowtext?? 1.0pt;
}
.TdCs2?? {
??????? border:solid?? windowtext?? 1.0pt;?? border-left:none;
}
.TdCs3?? {
??????? border-top:none;
??????? border-left:solid?? windowtext?? 1.0pt;
??????? border-bottom:solid?? windowtext?? 1.0pt;
??????????? border-right:solid?? windowtext?? 1.0pt;
}
.TdCs4?? {
??????? border-top:none;
??????? border-left:none;
??????? border-bottom:solid?? windowtext?? 1.0pt;
??????????? border-right:solid?? windowtext?? 1.0pt;
}
.underline?? {
??????? border-top-style:?? none;
??????? border-right-style:?? none;
??????? border-bottom-style:?? solid;
??????? border-left-style:?? none;
??????? border-bottom-color:?? #000000;
}
</style>


1、控制 "纵打 "、?? 横打”和“页面的边距。
(1) <script?? defer>
function?? SetPrintSettings()?? {
 //?? --?? advanced?? features
 factory.printing.SetMarginMeasure(2)?? //?? measure?? margins?? in?? inches
 factory.SetPageRange(false,?? 1,?? 3)?? //?? need?? pages?? from?? 1?? to?? 3
 factory.printing.printer?? =?? "HP?? DeskJet?? 870C "
 factory.printing.copies?? =?? 2
 factory.printing.collate?? =?? true
 factory.printing.paperSize?? =?? "A4 "
 factory.printing.paperSource?? =?? "Manual?? feed "

 //?? --?? basic?? features
 factory.printing.header?? =?? "This?? is?? MeadCo "
 factory.printing.footer?? =?? "Advanced?? Printing?? by?? ScriptX "
 factory.printing.portrait?? =?? false
 factory.printing.leftMargin?? =?? 1.0
 factory.printing.topMargin?? =?? 1.0
 factory.printing.rightMargin?? =?? 1.0
 factory.printing.bottomMargin?? =?? 1.0
}
</script>

(2)
<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(); ">

------------------------------------------------
关于这个组件还有其他的用法,列举如下:
WebBrowser.ExecWB(1,1)?? 打开
Web.ExecWB(2,1)?? 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1)?? 保存网页
Web.ExecWB(6,1)?? 打印
Web.ExecWB(7,1)?? 打印预览
Web.ExecWB(8,1)?? 打印页面设置
Web.ExecWB(10,1)?? 查看页面属性
Web.ExecWB(15,1)?? 好像是撤销,有待确认
Web.ExecWB(17,1)?? 全选
Web.ExecWB(22,1)?? 刷新
Web.ExecWB(45,1)?? 关闭窗体无提示

2、分页打印
<HTML>
<HEAD>
<STYLE>   
  P?? {page-break-after:?? always}
</STYLE>
</HEAD>
<BODY>
<%while?? not?? rs.eof%>

<%=rs(0)%>

<%rs.movenext%>
<%wend%>
</BODY>
</HTML>

3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号
(1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。
(2) <HTML>
<HEAD>
<TITLE>?? New?? Document?? </TITLE>
<META?? NAME= "Generator "?? CONTENT= "EditPlus ">
<META?? NAME= "Author "?? CONTENT= "YC ">
<script?? language= "VBScript ">
dim?? hkey_root,hkey_path,hkey_key
hkey_root= "HKEY_CURRENT_USER "
hkey_path= "SoftwareMicrosoftInternet?? ExplorerPageSetup "
'//设置网页打印的页眉页脚为空
function?? pagesetup_null()
  on?? error?? resume?? next
  Set?? RegWsh?? =?? CreateObject( "WScript.Shell ")
  hkey_key= "header "  
  RegWsh.RegWrite?? hkey_root+hkey_path+hkey_key, " "
  hkey_key= "footer "
  RegWsh.RegWrite?? hkey_root+hkey_path+hkey_key, " "
end?? function
'//设置网页打印的页眉页脚为默认值
function?? pagesetup_default()
  on?? error?? resume?? next
  Set?? RegWsh?? =?? CreateObject( "WScript.Shell ")
  hkey_key= "header "  
  RegWsh.RegWrite?? hkey_root+hkey_path+hkey_key, "&w&b页码,&p/&P "
  hkey_key= "footer "
  RegWsh.RegWrite?? hkey_root+hkey_path+hkey_key, "&u&b&d "
end?? function
</script>
</HEAD>

<BODY>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/> <p?? align=center>
<input?? type= "button "?? value= "清空页码 "?? onclick=pagesetup_null()>?? <input?? type= "button "?? value= "恢复页吗 "?? onclick=pagesetup_default()> <br/>


</BODY>
</HTML>
4、浮动帧打印
<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>
4、用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>

?

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/woaitiyu/archive/2008/10/27/3161181.aspx

1 楼 曾经、流泪过 2010-08-16  
顶下
  相关解决方案