Показать PDF из служб отчетов - PullRequest
5 голосов
/ 01 апреля 2011

Я хотел бы отобразить PDF-файл, созданный из служб Reporting Services из моего приложения WinForms.

Я попытался сделать следующее:

Uri uri = new Uri("http://myReportServer?MyReport&rs%3aCommand=Render&rs:Format=pdf");
System.Diagnostics.Process.Start(uri.ToString());

, который запускает браузер, который, в свою очередь, запрашиваетчтобы открыть или сохранить этот файл.

В идеале я хотел бы отобразить только файл, либо в браузере, либо в программе просмотра PDF.Проблема в том, что мне нужно открыть как браузер, так и просмотрщик PDF, что пользователям не нужно.

Есть ли простой способ сделать это, используя только URL?

Моя другая альтернативаэто просто написать некоторый код C #, который кажется простым.Вот несколько примеров:

http://geekswithblogs.net/bsherwin/archive/2007/04/29/112094.aspx

и здесь:

http://www.codeproject.com/KB/reporting-services/PDFUsingSQLRepServices.aspx

1 Ответ

4 голосов
/ 01 апреля 2011

Вы можете загрузить PDF на диск и затем использовать Process.Start, чтобы показать его.

Взгляните на этот пример:

        Uri uriDownload = new Uri("http://myReportServer?MyReport&rs%3aCommand=Render&rs:Format=pdf");
        string strSavePath = @"C:\test\test123.pdf";

        System.Net.WebClient wcli = new System.Net.WebClient();
        wcli.DownloadFile(uriDownload, strSavePath);
        System.Diagnostics.Process.Start(strSavePath);

ОБНОВЛЕНИЕ:

Если по умолчанию это не работает, попробуйте добавить это до wcli.DownloadFile ():

        wcli.Credentials = new NetworkCredential("username", "password", "domain");
        wcli.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...