代码改变世界

Silverlight打印注意事项

2013-09-10 17:58  slmk  阅读(962)  评论(0编辑  收藏  举报

1、Silverlight的打印功能从版本5开始才支持矢量打印,这不但要求打印机支持矢量打印,而且还要安装相应的打印驱动程序。

测试你的打印机是否支持矢量打印,可以参考:如何用C#代码检测打印机和驱动是否支持PostScript

如果打印机不支持矢量打印,Silverlight会使用图片打印方式,特点是发送到打印机的文档体积很大。只能靠调低打印机的分辨率来解决。

 

2、打印的UI不要包含Effort等高级效果,例如阴影,动画等。或者在打印之前屏蔽掉。否则会造成打印失败。具体的表现是:使用windows XPS文档的虚拟打印机时,生成文档后,有自动消失了。造成有时打印正常,换个报表又失败了。

 

3、权限问题。由于Silverlight默认运行在沙箱环境中,默认的打印是要求弹出打印对话框的。只有提权成完全信任后,或者OOB模式才能使用默认打印机直接打印。当然,提权后,还可以通过平台调用来完成诸如设置打印方向,改变纸张大小,指定打印机打印等任务。Silverlight5浏览器内受信任的应用程序

具体可参考:

Silverlight打印解决方案2.1正式发布(支持打印预览、页面设置(横向纵向,页边距,纸张大小、字体大小)、自动分页和多页连续打印)