【问题标题】:Printing text from silverlight application从 silverlight 应用程序打印文本
【发布时间】:2011-03-23 06:56:05
【问题描述】:

我正在尝试从我的 Silverlight 4 应用程序打印一份报告(只是列中的文本)。我知道的唯一方法是使用 PrintDocument 并将 PageVisual 设置为显示报表的框架元素。但是,这会导致打印作业异常大(如 120 MB)。这不是我的客户想要的。有没有其他解决办法?

【问题讨论】:

    标签: silverlight printing silverlight-4.0


    【解决方案1】:

    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

    【讨论】:

    • 谢谢。我认为我们将等待 Silverlight 5 功能。现在我们已经实现了我们自己的 PDF 解决方案,将报告保存在桌面上,然后用户必须自己打开和打印。
    • 这是浏览器外的应用程序,还是您使用无窗口模式从服务器端解决方案中提取 PDF?
    • 这是一个 OOB 应用程序。我们使用 PDFSharp 在服务器上创建 PDF 并将流返回给客户端。
    • 所以他们正在打开一个实际的 PDF 生成的服务器端并且打印作业是 120 MB+?
    【解决方案2】:

    一个简单的解决方案是直接从浏览器打印网页(我认为这不是您想要的)。

    我认为 PrintDocument 和 PageVisual 是从 SL 内部打印的唯一方法。

    即使是大型视觉结构,我也进行了一些打印,但我没有检查我的打印作业有多大,所以我无法告诉你它是否正常。

    无论如何,您可以尝试不直接打印您要打印的元素,而是制作一些仅用于打印目的的轻量级元素,并用相同的数据填充并打印该轻量级元素。

    【讨论】:

      【解决方案3】:

      您可以将您的文字转换成图片,然后打印图片.. mb 这将帮助您

      http://www.andybeaulieu.com/Home/tabid/67/EntryID/161/Default.aspx http://www.snowball.be/Printing+In+Silverlight+3+Yes+We+Can.aspx

      【讨论】:

      • 实际上 Silverlight 正在这样做。 Silverlight 4 只打印 600 DPI 的光栅化图像。
      猜你喜欢
      • 2015-09-14
      • 1970-01-01
      • 2010-09-30
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多