彩票走势图

Silverlight 4.0中打印报表和图形的解决方法

转帖|其它|编辑:郝浩|2010-12-20 15:02:35.000|阅读 1441 次

概述:对于一个Silverlight来说,需要打印的内容往往可能是整个网页的一部页,或是整个Silverlight应用程序的某个局部内容,如果仅仅使用JavaScript的网页打印的话,是无法满足Silverlight应用程序中打印的需求,不过这个问题终于在Silverlight 4.0中得到了比较完美的解决。本文主要介绍如何在Silverlight 4.0中完美地打印报表和图形。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  在Silverlight4之前我们通常可以用在Silverlight中CALL一下JavaScript脚本来进行基于普通网页的打印方法,但是这种无论是打印方式效果还是精确度控制上都不能让人十分满意。

  对于一个Silverlight来说,需要打印的内容往往可能是整个网页的一部页,或是整个Silverlight应用程序的某个局部内容,如果仅仅使用JavaScript的网页打印的话,是无法满足Silverlight应用程序中打印的需求,不过这个问题终于在Silverlight 4.0中得到了比较完美的解决。Silverlight 4运行时中引入了System.Windows.Printing命名空间,这个命名空间中包含一个名为PrintDocument的类,它可以完成Silverlight应用程序中有"针对性"的打印任务。

  下面我们用GRID制作一个简单的报表。

  如图所示:

   

  C#:

    1 public PrintSample()

    2 {

    3 InitializeComponent();

    4 this.Loaded += new RoutedEventHandler(PrintSample_Loaded);

    5 }

    6

    7 void PrintSample_Loaded(object sender, RoutedEventArgs e)

    8 {

    9 //创建打印文档对象

    10 pd = new System.Windows.Printing.PrintDocument();

    11 //创建打印事件,用于指定打印的文档对象作用的对象

    12 pd.PrintPage += new EventHandler(pd_PrintPage);

    13 }

    14

    15 void pd_PrintPage(object sender, System.Windows.Printing.PrintPageEventArgs e)

    16 {

    17 //指定打印文档对象的页面

    18 e.PageVisual = reportGrid;

    19 }

    20 private System.Windows.Printing.PrintDocument pd;

    21 private void btnPrint_Click(object sender, RoutedEventArgs e)

    22 {

    23 //定义打印的文档名称

    24 pd.DocumentName = "产品报表";

    25 //调用打印方法,开始打印

    26 pd.Print();

    27 }

  运行结果如图所示:

   

  使用后台代码来实现打印方法,主要依靠System.Windows.Printing.PrintDocument这个类来完成,PrintDocument具有PrintPage事件,你需要创建这个事件的事件处理方法,并在这个事件里指定打印文档的对象页面,在这里就是reportGrid的GRID控件,其中DocumentName是你要打印文档的名称,最终调用Print方法开始打印,并显示打印窗口,如果你没有安装打印机,系统会提示你先安装打印机,如图所示:

   

  PrintPage事件中具有StartPrint、EndPrint事件和HasMorePages属性,StartPrint和EndPrint事件是在打印开始前和打印结束后引发,而HasMorePages属性是一个bool类型的属性,当PrintPage事件多次运行时,如果值为true情况下,事件将等待至HasMorePages为false时才继续引发下一次事件。这里需要说明的是,PrintDocument不仅支持GRID对象,连Image对象也可以通过PrintDocument打印出来。
 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP