在Silverlight中打印数十页冻结计算机

时间:2011-02-08 15:03:56

标签: silverlight-4.0 printing


我们有一个Silverlight 4应用程序,可以打印多页报告。当页数超过20或30(取决于计算机)时,打印会完全阻止计算机,用户无法使用它。
这是由于巨大的打印作业大小 - 每页大约需要170MB,因此10页文档会产生近2gig! 在页面http://wildermuth.com/2009/11/27/Silverlight_4_s_Printing_Support的评论中(参见Marshall Agnew于2009年12月3日发表的评论)我发现“Silverlight Printing目前允许用户指定颜色/灰度,方向和分辨率(DPI)......”登记/> 但是,我无法找到有关如何完成此操作的任何信息 我们正在打印一个黑白文档,只有文字,所以灰度(如果可能的话,甚至是黑色和白色)对我们来说没问题。
感谢您提供有关如何减小打印作业大小的任何帮助,或者找到在SL4中打印多页报告的替代解决方案。

3 个答案:

答案 0 :(得分:1)

问题是silverlight通过从XAML渲染图像来打印原始图像字节。根本没有优化。

尝试从客户端生成XPS或PDF文件,并允许用户在打印前保存它。

XPS相对容易生成,因为它们使用XAML。

http://msdn.microsoft.com/en-us/library/ms771669.aspx

答案 1 :(得分:1)

这整件事激怒了我。如果我必须打印到PDF进行打印,那么Silverlight还没有为黄金时间做好准备。我在Silverlight中构建了一个大型应用程序。打印大部分工作,但在某些打印机中,大型打印作业会导致错误并锁定应用程序或计算机。这对我来说太荒谬了! Silverlight不能用于支持slap stick打印的商业应用程序。事实上,更糟糕的是,没有页面过滤。如果您选择8页文档的第2页和第5页,它将只打印第1页和第2页。

我很尴尬,我的应用程序现在继承了Silverlight的问题。

答案 2 :(得分:0)

听起来你对Silverlight打印引擎的要求太高了。如果您从PDF而不是直接从Silverlight打印,您可能会获得更好的性能。

您是否查看了一些第三方Silverlight报告工具?其中许多人会将报告转换为PDF,Excel和其他格式。