JavaScript + CSS 控制打印格式

来源:互联网 发布:c语言函数库大全 编辑:程序博客网 时间:2024/05/16 12:45
1. 用media="print"的css来控制要打印的文件testPrint.html中引用media为print的样式,表示打印时该样式才起作用 
Html代码  收藏代码
  1. <link href="/style/print.css" rel="stylesheet" type="text/css" media="print">  



/style/print.css文件 
Css代码  收藏代码
  1. .noprint{display:none;}  



在testPrint.html中使用print.css中的样式,在网页浏览的时候是看不出效果的,但是打印的时候会起作用,如下面这一段,加上noprint之后,在浏览器中仍然是现实的,但是打印的时候不显示: 
Html代码  收藏代码
  1.     <div class="noprint">  
  2.         <input type="button" onclick="window.print();" value="打印本页" />  
  3. </div>  



当然print.css里面的样式你可以随便写,改颜色啊(彩色的图像在黑白打印机下效果不好,可以用另一种样式打印),字体什么的都可以,随便发挥----------------------------------------------------------------- 

2. 用JavaScript来控制 

因为这样那样的原因,可能有的人css不太熟练,有的人JavaScript比较牛x,有时候JavaScript也是不错的选择 

Javascript代码  收藏代码
  1. <script type="text/javascript">  
  2.     <!--  
  3.                  //自动在打印之前执行  
  4.     window.onbeforeprint = function(){  
  5.         $("#test").hide();  
  6.     }  
  7.   
  8.     //自动在打印之后执行  
  9.     window.onafterprint = function(){  
  10.         $("#test").show();  
  11.     }  
  12.     //-->  
  13. </script>  
  14.   
  15.   
  16. <div id="test">这段文字不会被打印出来</div>  


打印之前,会调用window.onbeforeprint函数,这时你可以随意发挥,用你的聪明才智给html重新构造一边,然后打印。当然打印之后一般还要弄回来,就是window.onafterprint函数了 

--------------------------------------------------------------- 

小技巧:注意一点,打印我们都知道是window.print(),其实也可以打印框架的,如window.top.centerFrame.MainFrame.print();