Anytao

() => Console.WriteLine("Anytao's idea collection.");

[开发故事]第十三回,应用Css控制Html打印效果

十二月 29
by Anytao 29. 十二月 2009 05:19

anytao.net | 《你必须知道的.NET》网站 | Anytao技术博客 

发布日期:2009.12.29 作者:Anytao
© 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处。

 

引言

很多时候,提供对于html的直接打印,是业务实现的某个需求,这基本是对于浏览器的打印功能的js调用,常用的方法是:

javascript:window.print();

 

那么,在这种情况下,对于输出Printer的页面,在大小、风格的控制上,我们就可以通过Html的方式达到目标,这就是Css。

实现

例如,我们有以下的简单page:

<div>
    <div id="print">
        <asp:Button ID="btnPrint" runat="server" OnClientClick="javascript:window.print();" Text="Print" />
    </div>
    
    <span class="dfDate"><%= DateTime.Now.ToString() %></span>
    <p>
        To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>.
    </p>
    <p>
        You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409"
            title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
    </p>
    
    <span style="color: red;">2009, Anytao.com</span>
</div>

按钮Print,用于执行打印逻辑,就是一个简单的window.print调用。

应用Css控制输出效果,就是我们想要做到的事,对于打印而言,用户需要的可能是定制好的Html页面,但是这个Print按钮,可能并非用户想要在纸质报表上看到的东西,所以我们就可以应该css的media来完成这件事。

在header标签中添加:

<style type="text/css" media="print">
    body {background:none}
    div#print, .dfDate { display:none }
</style>

然后F5,我们将看到如下的UI显示:

o_anytao-devstory-13-01[1] 

通过浏览器预览,我们看到的效果如下:

o_anytao-devstory-13-02[1]

预料之中,Print按钮和日期显示,通过

div#print, .dfDate { display:none }

定义在Print时被“去掉”了,而我们正常的页面显示中,仍然可以保持较好的UI体验。同样的道理,如果输出的报表中,对于MasterPage的某些内容心存芥蒂,就直接应该Css武器吧。但是别忘了:

<style type="text/css" media="print">
</style>

关于media

在W3C的官方文档中,对于media是这样一个理解:style sheets的一个重要的特性就是在不同的媒介上对于document的不同展现,这主要包括:screen, paper, speech syntheirzer, a brialle device。

 

显然meida=”print”就是对于打印机设备而言,document的展现方式了。详细的内容可见:Media types

 

参考文献:

 

更多精彩,尽在anytao.net

 

anytao | © 2009 Anytao.com

2009/12/29 | http://anytao.net

本文以“现状”提供且没有任何担保,同时也没有授予任何权利。本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

第一个打分

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

07 开发故事

评论

添加评论


(将显示你的Gravatar图标)  

biuquote
  • 评论
  • 在线预览
Loading