【发布时间】:2011-03-23 06:56:05
【问题描述】:
我正在尝试从我的 Silverlight 4 应用程序打印一份报告(只是列中的文本)。我知道的唯一方法是使用 PrintDocument 并将 PageVisual 设置为显示报表的框架元素。但是,这会导致打印作业异常大(如 120 MB)。这不是我的客户想要的。有没有其他解决办法?
【问题讨论】:
标签: silverlight printing silverlight-4.0
我正在尝试从我的 Silverlight 4 应用程序打印一份报告(只是列中的文本)。我知道的唯一方法是使用 PrintDocument 并将 PageVisual 设置为显示报表的框架元素。但是,这会导致打印作业异常大(如 120 MB)。这不是我的客户想要的。有没有其他解决办法?
【问题讨论】:
标签: silverlight printing silverlight-4.0
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
【讨论】:
一个简单的解决方案是直接从浏览器打印网页(我认为这不是您想要的)。
我认为 PrintDocument 和 PageVisual 是从 SL 内部打印的唯一方法。
即使是大型视觉结构,我也进行了一些打印,但我没有检查我的打印作业有多大,所以我无法告诉你它是否正常。
无论如何,您可以尝试不直接打印您要打印的元素,而是制作一些仅用于打印目的的轻量级元素,并用相同的数据填充并打印该轻量级元素。
【讨论】:
您可以将您的文字转换成图片,然后打印图片.. mb 这将帮助您
http://www.andybeaulieu.com/Home/tabid/67/EntryID/161/Default.aspx http://www.snowball.be/Printing+In+Silverlight+3+Yes+We+Can.aspx
【讨论】: