如何在silverlight4中打开word / pdf?

时间:2011-12-09 04:44:39

标签: c#-4.0 silverlight-4.0 silverlight-oob

我正在使用silverlight4应用程序,我有一个要求将word / pdf文件存储在数据库(sqlserver)中,并且我成功了,现在我想使用带有我的扩展名的相应应用程序打开存储的文件.Iam不使用OOB,可以打开文件或将文件存储在用户选择的位置。任何人都可以帮助我吗?

提前致谢。

3 个答案:

答案 0 :(得分:1)

我建议创建一个.aspx页面或HTTPHandler,然后重写ProcessRequest方法。

public void ProcessRequest(HttpContext context)
{
   //database table or PDF/word file
   System.IO.MemoryStream mstream = GetData(); 
   //Convert the memorystream to an array of bytes. 
   byte[] byteArray = mstream.ToArray();         

    string fileName= "test.pdf";
    context.Response.Clear();

    context.Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
    context.Response.ContentType = "application/octet-stream";
    context.Response.BinaryWrite(byteArray); 
    context.Response.Flush();
    context.Response.End();
}

您的Silverlight应用程序将像普通客户端一样运行,并使用

进行http请求
<HyperlinkButton Content="Click Me" NavigateUri="Download.aspx?id=fileid" />

在上面的代码中

  context.Response.AppendHeader("content-disposition", "attachment;

告诉浏览器提示输入OPEn / Save对话框。

我希望这会奏效。

答案 1 :(得分:0)

只需为您的word / pdf文件提供HTML超链接。用户单击链接后,将在客户端浏览器中打开打开/保存对话框。为此你可以使用这样的东西:

<HyperlinkButton Content="Click Me" NavigateUri="filep URL" />

答案 2 :(得分:0)

我使用Acrobat Reader插件为我做显示。它确实需要一种不同的方法,具体取决于您的应用程序是在浏览器内部还是外部运行(我检查应用程序是否在浏览器内运行并相应地更改显示方式)。如果在浏览器中运行,我会使用IFrame覆盖应用程序,正如我在本文中所述:http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-6.aspx。否则,我使用WebBrowser控件。我有一个控件可以在我的书中附带的源代码中为您完成所有操作,可以从Apress网站下载http://www.apress.com/9781430272076/

希望这会有所帮助......

克里斯