c# - 显示 PDF - 应用程序页面 SharePoint

标签 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. 如果文件在 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 (Vizit) 中查看 PDF 和其他文档。您仍然需要解决读取文件的问题,但不是使用 PDF 响应,而是使用 PNG 响应并在 <img> 中请求标签。

关于c# - 显示 PDF - 应用程序页面 SharePoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2909555/

相关文章:

html - 摆脱 <div> 标签的高度属性

javascript - CSS - 将 div 内的元素与全局页面样式隔离开来,就好像它是一个 iFrame?

c# - 使用派生列表类访问基列表类的成员?

c# - newtonsoft jobject.Value<DateTime>() 不起作用

c# - 使用 CodeDOM 或 Mono - .NET

c# - ASP.Net 复选框确认消息不起作用

c# - 忽略具有特定更改模式的 checkin 文件

c# - VB 的 Asc() 和 Chr() 函数在 C# 中的等价物是什么?

c# - 如何获得已经发布的 SAML 断言?

asp.net - 动态设置 DataFormWebPart 中 ParameterBinding 的 DefaultValue