Silverlight - 印刷

时间:2010-02-26 15:11:15

标签: silverlight

我有一个具有DataGrid的Silverlight应用程序。我需要在DataGrid中打印所选项目。但是,我不想使用WritableBitmap。有没有办法让我将这些项目传递给WCF服务或.aspx页面并呈现HTML,提示用户打印?如果是这样,怎么样?

谢谢,

2 个答案:

答案 0 :(得分:2)

如果你使用的是Silverlight 4,你可以使用打印API,但我猜你在这种情况下不会问这个问题。

在Silverlight 3中,我认为您必须采用某种方法,SL代码调用JavaScript函数,以某种格式为其提供所选数据。此功能可以打开一个新窗口,数据以打印友好的格式重新显示,然后打印。

我提到了一个新窗口,因为我猜托管SL内容的窗口已经有一些与要打印的数据无关的内容。

答案 1 :(得分:1)

在SL4之前:

  1. 创建一个WCF服务:
    • 接受XML blob
    • 将其呈现为PDF(一种方法是使用FO)
    • 将其存储在具有唯一ID
    • 的某个临时区域中
    • 将id返回给客户端
  2. 创建一个.aspx页面:
    • 获取WCF服务返回的PDF文件的ID
    • 将生成的PDF流式传输到客户端(具有适当的内容类型)
  3. SL客户端:
    • 调用WCF服务并获取生成的PDF文件的ID
    • 构造生成的PDF文件的URL
    • 使用任何JavaScript技巧在浏览器中弹出该URL(一种方法是使用隐藏的IFRAME并将其源设置为URL)