Как отобразить отчет служб Reporting Services в виде встроенного PDF-файла на веб-странице ASP.Net и C #? - PullRequest
3 голосов
/ 25 февраля 2009

Мне нужно отобразить предварительный просмотр отчета на веб-странице ASP.Net (с использованием сценариев на стороне сервера C #). Предварительный просмотр должен быть PDF, а не HTML и отображаться встроенным (возможно, в iframe?).

Можно ли указать заголовки отчета, представленного в формате PDF, поэтому его «расположение содержимого» является встроенным, а не вложением?

Или есть какой-либо другой способ отображения отчета, отображаемого в виде PDF-файла, на веб-странице ASP.Net?


Я использую Reporting Services 2008

На сайте ASP.Net я использую веб-ссылки на ReportService2005.asmx и ReportExecution2005.asmx

1 Ответ

6 голосов
/ 25 февраля 2009

Я делаю что-то очень похожее. Но я использую 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();
...