显示PDF - 应用程序页面SharePoint

时间:2010-05-26 00:59:25

标签: c# asp.net sharepoint

我正在开发一个自定义WebPart,我需要一个应用程序页面来呈现PDF文件。

我目前正在使用以下链接http://support.microsoft.com/kb/306654

它在ASP.NET中运行良好,但在SharePoint中提供了一个空白页。

这是代码: (PDF文件在同一目录中)

        Response.ClearContent();
        Response.ClearHeaders();
        //Set the appropriate ContentType.
        Response.ContentType = "Application/pdf";
        //Get the physical path to the file.
        string FilePath = MapPath("Test.pdf");
        //Write the file directly to the HTTP content output stream.
        Response.WriteFile(FilePath);
        Response.Flush();
        Response.End();

最近几个小时的工作,让我发疯...任何想法?

1 个答案:

答案 0 :(得分:1)

一些想法:

  1. 如果文件位于SharePoint目录中,为什么不直接重定向到它的URL?

  2. 如果您使用Fiddler(或Firebug)查看HTTP流量 - 您是否看到内容类型更改?内容是什么(是PDF吗?)

  3. SharePoint和ASP.NET之间的主要区别(假设您正确访问该文件)是页面生命周期与安全模型略有不同。您可能希望了解Reponse.End()如何工作以确保它在SharePoint中没有区别。您可以在详细日志记录中运行SharePoint,然后在SharePoint dll上使用.NET Reflector(以日志作为指导)来查看是否有一些奇怪的方法来处理它。 SharePoint dll具有相当宽松的日志调用。更多信息:http://www.andrewconnell.com/blog/archive/2008/06/11/SharePoint-Debugging-and-Logging-Tips-and-Tricks.aspx

  4. 您是否考虑过光栅化PDF并在页面中内嵌显示?这就是我们在公司正在研究的项目中所做的工作,以便在SharePoint中查看PDF和其他文档(Vizit)。您仍然需要解决阅读文件的问题,但不是使用PDF回复,而是使用PNG进行回复并在<img>标记内请求。