在浏览器上要做到比较困难的,能否使用小软件winform之类的来解决

解决方案 »

  1.   

    css @media控制即可,
    不需要打印的的内容只在screen上
      

  2.   

    <html>     
      <head>     
      <title>看看</title>     
      <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">     
      <!--media=print   这个属性可以在打印时有效-->     
      <style   media=print>     
      .Noprint{display:none;}     
      .PageNext{page-break-after:   always;}     
      </style>     
        
      <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   #000000   #000000   #000000;     
      border-style:   solid;     
      border-top-width:   2px;     
      border-right-width:   2px;     
      border-bottom-width:   1px;     
      border-left-width:   1px;     
      }     
      .NOPRINT   {     
      font-family:   "宋体";     
      font-size:   9pt;     
      }     
        
      </style>     
        
      </head>     
        
      <body   >     
      <center   class="Noprint"   >     
      <p>     
      <OBJECT   id=WebBrowser   classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2   height=0   width=0>     
      </OBJECT>     
      <input   type=button   value=打印   onclick=document.all.WebBrowser.ExecWB(6,1)>     
      <input   type=button   value=直接打印   onclick=document.all.WebBrowser.ExecWB(6,6)>     
      <input   type=button   value=页面设置   onclick=document.all.WebBrowser.ExecWB(8,1)>     
    <input   type=button   value=打印预览   onclick=document.all.WebBrowser.ExecWB(7,1)> 
      <hr   align="center"   width="90%"   size="1"   noshade>     
    </p>
      </center>     
        
      <table   width="90%"   border="0"   align="center"   cellpadding="2"   cellspacing="0"   class="tabp">     
      <tr>     
      <td   colspan="3"   class="tdp">第1页</td>     
      </tr>     
      <tr>     
      <td   width="29%"   class="tdp">&nbsp;</td>     
      <td   width="28%"   class="tdp">&nbsp;</td>     
      <td   width="43%"   class="tdp">&nbsp;</td>     
      </tr>     
      <tr>     
      <td   colspan="3"   class="tdp">&nbsp;</td>     
      </tr>     
      <tr>     
      <td   colspan="3"   class="tdp"><table   width="100%"   border="0"   cellspacing="0"   cellpadding="0">     
      <tr>     
      <td   width="50%"   class="tdp"><p>这样的报表</p>     
      <p>对一般的要求就够了。</p></td>     
      <td>&nbsp;</td>     
      </tr>     
      </table></td>     
      </tr>     
      </table>     
      <hr   align="center"   width="90%"   size="1"   noshade   class="NOPRINT"   >     
      <!--分页-->     
      <div   class="PageNext"></div>     
      <table   width="90%"   border="0"   align="center"   cellpadding="2"   cellspacing="0"   class="tabp">     
      <tr>     
      <td   class="tdp">第2页</td>     
      </tr>     
      <tr>     
      <td   class="tdp">看到分页了吧</td>     
      </tr>     
      <tr>     
      <td   class="tdp">&nbsp;</td>     
      </tr>     
      <tr>     
      <td   class="tdp">&nbsp;</td>     
      </tr>     
      <tr>     
      <td   class="tdp"><table   width="100%"   border="0"   cellspacing="0"   cellpadding="0">     
      <tr>     
      <td   width="50%"   class="tdp"><p>这样的报表</p>     
      <p>对一般的要求就够了。</p></td>     
      <td>&nbsp;</td>     
      </tr>     
      </table></td>     
      </tr>     
      </table>     
      </body>     
      </html>
    ==================================================
    希望对你有用。
      

  3.   

    <style media="print">
    <!--
    .noprint {display : none;}
    -->
    </style><div class="noprint">
    打印不显示
    </div>
    <div>
    打印显示
    </div>
      

  4.   

    to :helloyou0(你好!)
    能請問下具體的做法嗎?當打印資料達到1w筆的時候,對瀏覽器的影響大嗎?整個列印出來大概需要多少時間?
    問的很多,因為太菜,還請不吝賜教。to :efanlx(小虾) 
    先謝謝你提供的方法,可是那樣好像只有IE可行吧
      

  5.   

    我说的就是楼下efanlx和cymple说的,基本上浏览器都支持, 不是只有ie可行
    不过你如果一万笔,还是建议你多分页,太多了
      

  6.   

    我記得ff中是沒有document.all這個屬性的
    如果將資料強行分頁,那用戶打印的時候不是要分幾次才可以打完麼?
    那用戶感覺不好
      

  7.   

    比如说你的新闻页面里面 新闻标题和内容的外边有个div他的id=news
    那么当点击打印了以后,执行javascript
    document.body.innerHTML = '<div id="print_content">' + document.getElementById['news'].innerHTML + '</div>';
    然后在CSS里面定义#print_content的样式
    #print_content {
        width: 650px;
        margin: 5px auto;
    }然后如果你想在打印新闻内容的头和尾上要加入东西的话,请在上面DIV部分加入更多的代码,然后定义样式就可以了
      

  8.   

    怎麼就覺得web上的列印就那麼難搞定呢?
    資料多了,顯示就慢。
    分頁打呢,使用又麻煩
    不知道使用那些什麼報表控件當資料多的時候是不是也會造成死機或者什麼的?
      

  9.   

    分頁是肯定得分頁打印
    不過問題是在於,你得讓用戶預覽到他要打印的東西,
    資料多點的時候,光那些HTML代碼就得運行很久才出得來
    測試下,顯示9000+筆資料得花4分鐘才可以運行完
    .......
      

  10.   

    你可以做一个隐藏的FRAME
    在这个FRAME里最后 window.print 再 location 到下一页.