[转]silverlight打印慢的问题

原文地址:

http://www.cnblogs.com/rocket2012/archive/2012/12/01/2797455.html

 

用silverlight技术做了两年的开发了,对于它的打印,我一直都是一个门外汉。silverlight打印慢的问题,从去年就提出了,当时使用的是silverlight4,于是寄希望于silverlight5的矢量打印能解决这个问题。今年silverlight5出来了,但是矢量打印却是个坑爹玩意,于是,打印慢的问题仍然困扰着我们。

今年年底,各个地方都在用我们的电子政务做农村集体确权登记,几万份的申请书、审批表和土地证要打印,打印慢的问题越来越突出。开发经理DY是想用华表去做打印。
这两天有趣的事情发生了。项目经理WBJ拿一个国外的silverlight报表工具demo给开发经理看,开发经理看了之后叫我看看,说人家用silverlight打印几秒钟就出来了。我也是觉得不可思议。于是在开发经理的要求下昨天上午抽了半天的时间去看看我们的表单打印有没什么能改进的地方。
我想既然别人用silverlight生成的报表打印这么快,那我也用DataGrid做一个报表,看是不是打印这么快,结果是很快。接着我又想,DataGrid打印这么快,那其他的控件呢?于是我又用我们的表单工具做了一个简单的只有文本的表单,测试打印,结果也很快。于是我又想,是不是我们表单的其它控件打印慢呢,拿审批表的四页分别来测试,发现前3页居然都很快,而最后一页很慢,分析后认为,最后一页慢是因为有了印章控件,而印章控件的特殊之处,就是控件里面用了Image控件。于是乎联想到,我们系统里面表单打印慢,或许是因为表项的Image控件。于是我继续探索,发现了Image控件的一个很坑爹的特点,就是如果Image的Source为空,打印速度就很慢,但是如果不为空,就很快。那我想,我们系统的表单如果把Image控件的Source都设置一个默认的值,那打印速度应该就很快了。
和开发经理说了这个事情,下午我们按照我的猜想,把表单做了修改,结果可喜的事情出现了,打印真的快了很多很多,原来要一分钟,现在只要几秒钟。我看到开发经理都咧着嘴笑了,哈哈。
终于解决了这个久久困扰着我们的问题,项目也可以验收了。
posted @ 2012-12-01 17:35  老蒋  阅读(428)  评论(0编辑  收藏  举报