Principales respuestas
Abrir PDF en otra ventana del navegador ASP.Net

Pregunta
-
Que tal,
Me encuentro descargando un archivo PDF(Byte) por medio del siguiente código:
byte[] ArchivoPDF = ClaseQueObtieneArchivoByte; HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", "pruebapdf.pdf")); HttpContext.Current.Response.BinaryWrite(ArchivoPDF); HttpContext.Current.Response.Flush(); Response.Clear();
Sin embargo, necesito que despues de descargarlo se muestre el pdf en otra página (Webform), alguien tendrá algún consejo.
Nota: El archivo se descarga en la parte baja del navegador.
Armando Alavez De Jesus
Respuestas
-
Tienes que cambiar el content-disposition para que sea inline en lugar de attachment:
HttpContext.Current.Response.AddHeader("content-disposition", "inline");
Con eso te saldrá dentro de la página en aquellos navegadores que lo soporten y que tengan instalado el adecuado plugin para PDF. En los demás navegadores continuará descargándose.
- Marcado como respuesta Armando Alavez jueves, 11 de enero de 2018 15:24
-
Otra solución aparte de la de Armando, es descargar el pdf com lo haces y cuando termine rediriges el fujo de la page (por javascrit o lo que sea) a la ruta de ArchivoPDF, si el navegador soporta pdf te lo abrirá. o bién abres un nuevo tab a esa ruta con javascript.
- Marcado como respuesta Armando Alavez miércoles, 24 de enero de 2018 15:29
-
hola
Aconsejaria utilizar alguna libreria como ser
para poder visualizar el pdf dentro del browser, porque el tema es que no todos los browser se integran a las aplicaciones de view de pdf
Displaying PDF files with PDF.js library
la url que definas para mostrar el pdf deberia ser la que ponga en el response el archivo
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Editado Leandro TuttiniMVP jueves, 11 de enero de 2018 12:39
- Marcado como respuesta Armando Alavez jueves, 11 de enero de 2018 15:25
Todas las respuestas
-
Tienes que cambiar el content-disposition para que sea inline en lugar de attachment:
HttpContext.Current.Response.AddHeader("content-disposition", "inline");
Con eso te saldrá dentro de la página en aquellos navegadores que lo soporten y que tengan instalado el adecuado plugin para PDF. En los demás navegadores continuará descargándose.
- Marcado como respuesta Armando Alavez jueves, 11 de enero de 2018 15:24
-
Otra solución aparte de la de Armando, es descargar el pdf com lo haces y cuando termine rediriges el fujo de la page (por javascrit o lo que sea) a la ruta de ArchivoPDF, si el navegador soporta pdf te lo abrirá. o bién abres un nuevo tab a esa ruta con javascript.
- Marcado como respuesta Armando Alavez miércoles, 24 de enero de 2018 15:29
-
hola
Aconsejaria utilizar alguna libreria como ser
para poder visualizar el pdf dentro del browser, porque el tema es que no todos los browser se integran a las aplicaciones de view de pdf
Displaying PDF files with PDF.js library
la url que definas para mostrar el pdf deberia ser la que ponga en el response el archivo
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Editado Leandro TuttiniMVP jueves, 11 de enero de 2018 12:39
- Marcado como respuesta Armando Alavez jueves, 11 de enero de 2018 15:25
-
Tienes que cambiar el content-disposition para que sea inline en lugar de attachment:
HttpContext.Current.Response.AddHeader("content-disposition", "inline");
Con eso te saldrá dentro de la página en aquellos navegadores que lo soporten y que tengan instalado el adecuado plugin para PDF. En los demás navegadores continuará descargándose.
Me funciono la solicion que dio Alberto, llamando desde JS a otra pagina y mostrando en esta el pdf.
//Funcion en JS function AbreVentana() { //window.open("WebForm2.aspx"); window.open('Bioempedancia.aspx', '_new'); } //Codebehind (Page Load WebForm2) HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = false; HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.AddHeader("content-disposition", "inline"); HttpContext.Current.Response.AddHeader("Content-Length", ArchivoPDF.Length.ToString()); HttpContext.Current.Response.Charset = "UTF-8"; HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Private); HttpContext.Current.Response.BinaryWrite(ArchivoPDF); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.End();
Armando Alavez De Jesus