我想从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
答案 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)");