我正在尝试从Silverlight 4应用程序中打印报告(只是列中的文本)。我知道的唯一方法是使用PrintDocument并将PageVisual设置为显示报告的框架元素。但是,这会导致非常大的打印作业(如120 MB)。这不是我的客户想要的。还有其他解决方案吗?
答案 0 :(得分:2)
Silverlight 4的问题在于,您打印的所有内容都是以600 DPI的光栅化图像生成的。这解释了您所看到的大工作规模。这也是为什么Silverlight中的文本与您对输出的期望相比看起来非常模糊的原因。 Silverlight 5将使用Postscript vector-based printing来解决这个问题,但是现在您面临的事实是,如果没有第三方解决方案,您实际上会遇到开箱即用的限制或使用HTML。
如果您愿意从服务器端提供的HTML生成报告,那么考虑到您正在做的事情,您可能拥有最佳解决方案。在这种情况下,您至少不必担心像Silverlight打印一样的复杂性,如分页。
一个良好的第三方报告解决方案,但可能超出您的需求,是使用与此产品相结合的Reporting Services:http://www.perpetuumsoft.com/Silverlight-Viewer-for-Reporting-Services.aspx?lang=en
答案 1 :(得分:1)
一个简单的解决方案是直接从浏览器打印网页(我认为这不是你想要的)。
我认为PrintDocument和PageVisual是如何从SL内部打印的唯一方法。
即使使用大型视觉结构我也进行了一些打印,但是我没有检查我的打印作业有多大,所以我不能告诉你它是否正常。
无论如何,你可以尝试不直接打印你想要打印的元素,但是制作一些其他轻量级的元素只用于打印目的,并用相同的数据填充它并打印那个轻量级元素。
答案 2 :(得分:-1)
您可以将文字转换为图片然后打印图片..这将有助于您
http://www.andybeaulieu.com/Home/tabid/67/EntryID/161/Default.aspx http://www.snowball.be/Printing+In+Silverlight+3+Yes+We+Can.aspx