我正在尝试将一个PDF文件从WCF发送到silverlight客户端。 PDF由DevExpress XtraReports生成(在方法 XtraReport CreateReport(string reportTypeName,RootGenericReportParameterContainer reportInformation))。
在文件保存对话框中选择保存路径后,Acually PDF保存在客户端计算机上的某处 - DevExpress会处理所有事情 - 但我不知道如何在浏览器的新选项卡中打开PDF。
这是另一个问题。 Silverlight 4无法访问本地文件系统吗?因此,有关本地PDF位置的信息是无用的。也许最好将PDF保存在WCF中并将链接发送给客户端 - 但是如何?
答案 0 :(得分:0)
我首先会问你为什么需要将文件发送到Silverlight客户端。摆脱这一要求,解决方案变得更加简单。 Silverlight可以提供打开新浏览器选项卡的链接。该链接将由Web域处理,将其作为HttpHandler处理,为浏览器生成PDF文件。您的PDF网址不必引用物理文件,您仍然可以根据请求生成它,处理查询字符串值等等。有很多不同的方法可以做到这一点。
答案 1 :(得分:0)
似乎问题不是关于DevExpress或Silverlight - 你只是想在新标签中打开[某种文档]。每个浏览器本身处理不同的事情,用户可以将标签处理更改为他们想要的任何内容。并且(正如您所提到的)一旦用户下载了该文件,您就不再对其进行控制。
您最好的选择(以及我的方式)可能是在网页上的锚标记中使用“target ='_ blank'”指向处理程序/文件的链接。从服务器端,您可能希望将“Content-Disposition”标题设置为“Inline”,以向浏览器指示文档应该显示在原位而不是下载(“附件”)。