silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight企业应用实战:SL 4.0 打印,让我拿什么说爱你?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

目录: 一、基本原理 二、一些限制 三、打印,想说爱你却并不容易   一、基本原理   网上有很多关于SL 4.0的教程,其中不乏介绍SL 4.0一个重要的新特性(也是企业应用非常重要的特性)——打印。这里简单的讲解一下,会了的同学可以直接跳过这一部分。   实现打印主要使用PrintDocument类。 var document = new PrintDocument();   PrintDoc

目录:

一、基本原理

二、一些限制

三、打印,想说爱你却并不容易

 

一、基本原理

 

网上有很多关于SL 4.0的教程,其中不乏介绍SL 4.0@L_489_0@重要的新特性(也是企业应用非常重要的特性)——打印。这里简单的讲解一下,会了的同学可以直接跳过这一部分。

 

实现打印主要使用PrintDocument类。

var document = new PrintDocument(); 

 

PrintDocument类主要有1个关键事件,1个关键方法

document.PrintPage += new EventHandler(document_PrintPagE);
document.Print("Test Document");
PrintPage事件的用法如下:void document_PrintPage(object sender,PrintPageEventArgs E)
{
    e.PageVisual = new Rectangle() { Fill = new SolidColorBrush(Colors.bluE) }; //要打印的UIElement
    e.HasMorePages = false; //认为false
}


如果为多页打印,则需要将 e.HasMorePages = true

此时PrintPage事件将被多次触发,直到e.HasMorePages为false为止。

PrintDocument类还有2个事件,分别是BeginPrint和EndPrint,分别在打印任务开始和结束时触发(无论多少页,各触发一次)。

 

二、一些限制

  

在实际使用过程中发现PrintDocument类的使用有一些限制。

 

  1. 不能够通过创建两个实例的方式同时启动两个打印任务。
  2. PrintDocument.Print方法必须由用户触发。

 

以上两种错误的使用方法都会抛出SecurityException:对话框必须由用户启动。

 

PrintDocument是通过调用COM组件实现打印的,类似于:SaveFileDialog、OpenFileDialog等。请使用时注意使用场景的限制。

 

三、打印,想说爱你却并不容易

 

打印这一功能,我相信很多人和我们一样,盼星星盼月亮~终于盼到SL 4.0正式发布的日子。

 

我们也是立即马不停蹄的开发SE的新特性,并将打印列为了比较重要的一块儿。

 

经过我们团队的 @大贲 (ben,1声,女孩子哦,技术可不输你们~)辛勤努力,我们在SE中实现了打印和打印预览功能。 

Silverlight企业应用实战:SL 4.0 打印,让我拿什么说爱你?

Silverlight企业应用实战:SL 4.0 打印,让我拿什么说爱你?

打印预览:支持单页和多页预览、设置纸张类型、方向、显示页眉、页脚、显示打印人、显示打印时间等功能

 

就在我们认为一切OK,只等SE 4.0上线就可以将该功能交付客户使用的时候,却惊讶的发现由Silverlight产生的打印文档竟然有123MB之巨!而且还是单页!

Silverlight企业应用实战:SL 4.0 打印,让我拿什么说爱你?

 

我们知道SL 4.0的打印是基于位图的,也知道位图肯定要比矢量图大,但是我们没有想到的是。。大的也太多了吧!!

 

(我们测试了@L_489_0@分页为4页的文档,竟然有492MB之巨,直接的结果就是。。。打印机死掉了。。。)

 

============== 无奈的分割线 ==============

 

我们将该问题反馈给微软后,得到的答复如下:

 

 

对于SL打印的改进,微软的回复如下:

 

 

============== 最后总结的分割线 ==============

 

经过公司层面慎重讨论,我们不得不从SE 4.0版本中撤下SL 4.0原生打印支持这一特性。

 

作为软件服务提供商,我们不能要求我们的客户去做什么,我们只能将最简单、最好用的功能提供给客户。

 

在这一特性上花费了时间和精力的同事们致敬,我也相信在这一过程中你们学到了很多东西。

 

至少,我们知道,SL 4.0之后我们还在盼着什么~

 

打印,SL 5.0再会!!!

@H_801_185@

大佬总结

以上是大佬教程为你收集整理的Silverlight企业应用实战:SL 4.0 打印,让我拿什么说爱你?全部内容,希望文章能够帮你解决Silverlight企业应用实战:SL 4.0 打印,让我拿什么说爱你?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。