当前位置: 代码迷 >> JavaScript >> jsp打印有关问题
  详细解决方案

jsp打印有关问题

热度:398   发布时间:2012-10-11 10:16:10.0
jsp打印问题
jsp打印问题
回复于 2006-01-06 22:43:45 得分 0
网页的打印一直是一个比较麻烦的问题,好的解决办法是使用第三方的插件来解决。  
  你可以查一下使用用友的华表有关这方面的解决办法。Top

回复于 2006-01-06 23:11:21 得分 0
现在不是可以在jsp中用水晶报表了吗,也是在刚学这个东西.Top

回复于 2006-01-07 09:26:30 得分 0
window.print();Top

回复于 2006-01-07 09:54:08 得分 0
在打印时在不要显示的地方用DIV包含起来,并为该DIV取个ID名,如<div   >不要显示的内容</div>  
  打印时用document.all.divID.style.display='none';这样对应的DIV就在打印时不显示出来了,再window.print();一下就行了,  
  当然如果要在打印时,打印出正常情况不显示的内容的话,也可以这样,先用DIV把它包含起来,到页面最后地方先把display设为'none',按打印时设为'block'就行了  
  不过打印效果不是很理想,对于要求不高的适用.Top

回复于 2006-01-07 14:18:21 得分 0
<style   media=print>  
  .noPrint{display:none;}  
  .PageNext{page-break-after:   avoid;   page-break-before:   avoid;}  
  </style>  
   
  <body>  
  <div   >  
  <object   classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"   height="0"       width="0"></object>    
  <div   align="right">  
  <input     style="color:#B45CC9"   type="button"     value="打印设置"   >    
  <input     style="color:#B45CC9"   type="button"       value="打印预览"   >    
  <input     style="color:#B45CC9"   type="button"     value="直接打印"   >  
  </div>  
  </body>Top

回复于 2006-01-07 14:19:34 得分 0
 
  function   printSetup()  
  {    
    wb.execwb(8,1);    
  }  
   
  function   printPreview()  
  {         
  wb.execwb(7,1);      
  }    
   
  function   printIt()    
  {    
  if(confirm('     确定要直接打印吗?'))  
  {    
     wb.execwb(6,6);  
    }    
  }Top

回复于 2006-01-07 16:33:58 得分 0 回复于 2006-01-07 19:41:16 得分 0
参考一下:  
   
            我再dev中找不到打印得相关答案就找了个好东西.,.明天我一个一个去试一试    
      WEB打印大全:(转截梅花雨)    
      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       width=0></OBJECT>    
      <input   type=button     value="打印"    
         
      >    
      <input   type=button     value="打印页面设置"    
         
      >    
      <input   type=button     value="打印预览"    
         
      >    
      <input   type=button     value="关闭"    
         
      >    
         
      ------------------------------------------------    
      关于这个组件还有其他的用法,列举如下:    
      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%>    
      <P><%=rs(0)%></P>    
      <%rs.movenext%>    
      <%wend%>    
      </BODY>    
      </HTML>    
         
      3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号    
      (1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。    
      (2)<HTML>    
      <HEAD>    
      <TITLE>   New   Document   </TITLE>    
      <META     CONTENT="EditPlus">    
      <META     CONTENT="YC">    
      <script   language="VBScript">    
      dim   hkey_root,hkey_path,hkey_key    
      hkey_root="HKEY_CURRENT_USER"    
      hkey_path="\Software\Microsoft\Internet   Explorer\PageSetup"    
      '//设置网页打印的页眉页脚为空    
      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="清空页码"     <input   type="button"   value="恢复页吗"      
         
      </p>    
      </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       >    
      <INPUT   type="button"   value="打印>>"       >   //调用打印函数    
      <INPUT   type=hidden       value=<%=………%>>   //保存服务器端传来的数据    
      ………    
      </HTML>Top

回复于 2006-01-07 19:41:58 得分 0
用css控制打印:  
  <style>  
  @media   print{  
  INPUT   {display:none}  
  }  
  </style>  
  <TABLE   border="0"   style="font-size:9pt;"   width="300px"   align="center">  
  <THEAD   style="display:table-header-group;font-weight:bold">  
  <TR><TD   colspan="2"   align="center"   style="font-weight:bold;border:3px   double   red">每页都有的表头</TD></TR>  
  </THEAD>  
  <TBODY   style="text-align:center"">  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR   style="page-break-after:always;"><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR   style="page-break-after:always;"><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR><TD>表格内容</TD><TD>表格内容</TD></TR>  
  <TR   style="page-break-after:always;"><TD>表格内容</TD><TD>表格内容</TD></TR>  
  </TBODY>  
  <TFOOT   style="display:table-footer-group;font-weight:bold">  
  <TR>  
  <TD   colspan="2"   align="center"   style="font-weight:bold;border:3px   double   blue">每页都有的表尾</TD>  
  </TR>  
  </TFOOT>  
  </TABLE>  
  <input   type=button   value="   打     印   "   >  
  --------------------------------  
  style="page-break-after:always;   这个就是控制打印分页的。。Top

10 楼wangyuqin(上学的机会不容易,努力学习呀)回复于 2006-01-07 22:12:52 得分 0 回复于 2006-01-10 15:52:53 得分 0
这个就比较繁琐了。  
  如果客户要求不高的话就用js打印。  
  否则就比较麻烦了,最好是买成熟的东西。Top

回复于 2006-01-24 09:45:15 得分 0 回复于 2006-02-28 19:58:50 得分 0
建议使用开源的jasperreports来实现,可以生成pdf/excel/rtf/html/csv等多种报表输出结果,有问题可以去这里讨论  
  http://forum.brainysoft.netTop

14 楼killme2008(为了生态平衡,请保护蛤蟆)回复于 2006-03-01 04:39:06 得分 0
GZ  
  最好还是用别人做好的报表吧,太麻烦了好象Top

回复于 2006-03-01 13:32:39 得分 0 相关问题
  相关解决方案