2011-04-01 34 views
5

me gustaría mostrar un PDF generado a partir de Reporting Services desde mi aplicación WinForms.Visualizar un PDF a partir de Reporting Services

He intentado lo siguiente:

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

que se lanza un navegador, que luego a su vez me impulsa a abrir o guardar este archivo.

Tu lugar ideal para mostrar sólo el archivo, ya sea en el navegador o en un visor de PDF. El problema es que tengo que abrir tanto el navegador como el visor de PDF, que los usuarios no desean.

¿Hay una manera simple de hacer esto utilizando sólo la URL?

Mi otra alternativa es simplemente escribir algo de código C# que parece sencillo. Hay algunos ejemplos aquí:

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

y aquí:

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

Respuesta

4

Puede descargar PDF en el disco y luego usar Process.Start mostrarlo.

Tome un vistazo a este ejemplo:

 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); 

ACTUALIZACIÓN:

Si eso no funciona por defecto, tratar de añadir esto antes 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)"); 
+0

Gracias, que se ve bien sin embargo he intentado eso y tengo el siguiente error 'el servidor remoto devolvió un error:. (401) no autorizada' No recibí ningún error con mi código original. ¿Hay algo que deba hacer? – openshac

+0

@openshac: actualicé mi respuesta, eche un vistazo. – HABJAN

+0

@HABAN, desafortunadamente no tengo acceso a todas las contraseñas de los usuarios. ¿Hay algo que pueda hacer para asegurarme de usar Autenticación integrada? – openshac

Cuestiones relacionadas