我正在开发一个自定义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();
最近几个小时的工作,让我发疯...任何想法?
答案 0 :(得分:1)
一些想法:
如果文件位于SharePoint目录中,为什么不直接重定向到它的URL?
如果您使用Fiddler(或Firebug)查看HTTP流量 - 您是否看到内容类型更改?内容是什么(是PDF吗?)
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
您是否考虑过光栅化PDF并在页面中内嵌显示?这就是我们在公司正在研究的项目中所做的工作,以便在SharePoint中查看PDF和其他文档(Vizit)。您仍然需要解决阅读文件的问题,但不是使用PDF回复,而是使用PNG进行回复并在<img>
标记内请求。