我需要在ASP.Net网页(使用C#服务器端脚本)中显示报告的预览。预览需要是PDF而不是HTML,并且必须以内联方式显示(可能在iframe中?)。

是否可以指定以PDF格式呈现的报告的标题,因此其“内容处置”是内联而不是附件?

还是有其他方法可以在ASP.Net网页中显示以PDF内联方式呈现的报告?



我正在使用Reporting Services 2008

在ASP.Net网站中,我正在使用对ReportService2005.asmx和ReportExecution2005.asmx的Web引用。

最佳答案

我正在做的事情非常相似。但是我使用的是HttpWebRequest而不是使用服务。这就是我的做法。重要的部分是Content-Disposition中文件名之前的内联。

它还取决于他们的Adobe Reader版本(我们发现他们需要7或更高版本)以及它们在其中设置的设置(以防他们将其设置为无法在浏览器中打开PDF)。

HttpResponse currentResponse = HttpContext.Current.Response;
currentResponse.Clear();
currentResponse.ClearHeaders();
currentResponse.ClearContent();

filename = String.Format("{0}.pdf", this.ReportName);
currentResponse.AppendHeader("Content-Disposition", String.Format("inline;filename={0}", filename));
currentResponse.ContentType = "Application/PDF";

//Copy the content of the response to the
//current response using BinaryWrite
snip....

currentResponse.End();

10-08 03:59