显示Reporting Services中的PDF

时间:2011-04-01 13:22:18

标签: c# pdf reporting-services

我想从WinForms应用程序中显示从Reporting Services生成的PDF。

我尝试了以下内容:

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 个答案:

答案 0 :(得分:4)

您可以将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)");