我需要在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();