Imprimir reporting services en pdf desde API Net Core pasando parametros

Si deseas imprimir un reporting services que esta hosteado en un servidor de reportes de Microsoft Reporting Services, este es el post indicado para ti.

Este es el Codigo resultante del endpoint que agregue a mi API para poder conectarme al servidor de reportes y obtenerlo en formato PDF.

 [HttpGet("[action]/{parametro}")]
        public IActionResult ObtenerReporte(string parametro)
        {
            //Todo agregar urls,credenciales al settings  y hacer metodo async

            //URL Base de mi servidor de reporte con la peticion de parametro en la url
            string urlBase = "https://myrshost/ReportServer?/myreport&PARAMETRO="
            // aqui es donde indicas en que formato quieres obtener el reporte
            string formatoReporte = "&rs:Format=pdf";
            // la url final
            string url = urlBase + parametro + formatoReporte;


            try
            {
                urlBase = url.Replace("\n", "");
                WebRequest request = WebRequest.Create(urlBase);
               // pasas las credenciales para conectarte al servidor de reporte de reporting services
                NetworkCredential credentials = new NetworkCredential(@"tu usuario aqui", "tu clave aqui", "tu dominio aqui");
                request.Credentials = credentials;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream stream = response.GetResponseStream();
                return File(stream, "application/pdf");

            }
            catch (Exception ex)
            {
                return BadRequest(ex.Message);
            }

        }

Una vez hecho esto ya tienes la funcionalidad de hacer que tu API Net core tenga la capacidad de conectarse con tu servidor de reportes enviarlo a tu front-end y obtenerlo en el formato deseado sin la necesidad de pre-visualizarlo.

Documentacion:

Espero que les sirva de ayuda. Keep coding!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *