function printPreview()  //将 DataGrid 打印预览
{
  try
  {
    var printWindow = window.open("","_blank");
    var str = "<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT>"
    var s = "<html>\r\n";
    s += "<head>";
    s += "<LINK href='../images/css.css' type='text/css' rel='stylesheet'>";
    s += "<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>";
    s += "</head>";
    s += "<body><center><br>";
    s += "<div align=center style='width:96%'>";
    s += document.all.dgAnswer.outerHTML;
    s += "</div>";
    s += "</center></body>";
    s += "</html>";
    printWindow.document.write(s);
    printWindow.document.close();
    printWindow.document.body.insertAdjacentHTML("beforeEnd", str);
    printWindow.document.all.WebBrowser.ExecWB(7,1);  //打印预览
    //printWindow.document.all.WebBrowser.ExecWB(6,6);//直接打印
    printWindow.close();
  }
  catch(e)
  {
    alert("您的浏览器版本太低,请升级您的浏览器!");
  }
}
这是我写的一段代码, 也奉献出来大家参考参考.

解决方案 »

  1.   

    网页头部的图片、尾部的版权声明、按钮都可以加上如下的样式,其实CSS最简单<style>
    @media print {
       .noprint {display:none}
    }
    </style>
    <button class="noprint">Print</button>
      

  2.   

    to bencalie(Bencalie):
    其实我的目的是指在有的时候,网页上显示的是一种风格,比如打印发票,显示时,显示发票的样子,包括表格,划线等,而打印时,发票的表格线没必要打,那就可以使用这种方式来调用打印。
      

  3.   

    <style>
    @media print {
       .noprint {display:none}
    }
    </style>
    <button class="noprint">Print</button>这个才是有效的方法,显示的时候照样显示,但是不打印出来,而且控制非常方便. 还有一个是media SCREEN.几年来,我一直用这个,屡试不爽啊
      

  4.   

    to hrong(黄蓉) 
    你的方法我试了一下,新弹出来的预览页面如果点菜单中的关闭可以正常工作,可是如果点击窗口的关闭按钮,那么你open的printWindow就又显示出来了,这个怎么处理
      

  5.   

    to luok(罗开) :您的写法用CSS来处理,是不错的,不过有的套嵌的表格中有的线要打,有的线不要打就不好处理了。当然,你这种办法是很快捷的,很简单,但其打印版面会存在空位,无法实际真正定位打印。本文的问题解决的是显示的是一种界面,而打印的是另一种版面,如显示时,可以显示大量的图片、版权信息、相关链接等,而这些信息没必要打印出来,这样就可以采用本文的做法。您采用的是CSS的Class做法,不打印的内容统一用一个class来界定,显得版面单一,而您若采用多种不打印class来体现,那做法不是比本文的做法更复杂、花更多时间去处理CSS之上吗?方法可以多样化,条条道路通罗马,并不能说哪一种是唯一有效的方法哦。
      

  6.   

    to wanghuixue(辉):
    去掉页眉页脚的办法:
    一、最省事,也是最笨的,最直接的是点击ie浏览器的文件菜单,选中页面设置,将页眉页脚下面的文本框清空,即将&w&b页码,&p/&P,&u&b&d都删掉
    它们的作用分别是:
    窗口标题 &w 
    网页地址 (URL) &u 
    短日期格式(由“控制面板”中的“区域设置”指定) &d 
    长日期格式(由“控制面板”中的“区域设置”指定) &D 
    当前页码 &p 
    总页数 &P 
    文本右对齐(后跟 &b) &b 
    文字居中(&b&b 之间) &b&b 
    单个 & 号 (&) 
    二、在要打印的页面里用代码控制:
    <OBJECT id=factory style="DISPLAY: none" 
    codeBase=http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360 
    classid=clsid:1663ed61-23eb-11d2-b92f-008048fdd814 viewastext></OBJECT>
    <SCRIPT defer>
    function println() {
      factory.printing.header = ""
      factory.printing.footer = ""
      factory.printing.Print(true)
      factory.printing.leftMargin = 0.2
      factory.printing.topMargin = 0.5
      factory.printing.rightMargin = 0.2
      factory.printing.bottomMargin = 1.5
      window.print();
      }
    </SCRIPT>
     <input  onClick="this.style.visibility='hidden';println();return false" type="button" value="打印" class="button">
      

  7.   

    chinesun (石上) :<style>
    @media print {
       .noprint {display:none}
    }
    </style>
    <button class="noprint"> 不要 Print</button>在任何不要打印的元素上加 class="noprint",它就不会被打印. 一点不会破坏显示页面其打印版面会存在空位===>也不会的.
      

  8.   

    http://219.236.24.17:8080/webprint/index.html有打印组件
      

  9.   

    to:q_mei(q_mei
    我怎么连不上呢