ASP.Net, Visualizando PDF en Iframe Desde Cualquier Unidad De Nuestro Disco Duro Local.
Si
lo que deseas es poder visualizar un archivo PDF dentro de un formulario web en
ASP.net, bastará con almacenarlo o guardarlo en cualquier ubicación de nuestro disco duro local (Unidad C: , Unidad D:,
etc.), una vez guardado, será necesario conocer la ruta física del archivo
en cuestión, ya que será necesaria para poder visualizarlo.
Vamos
a iniciar entonces a diseñar la interfaz con la cual trabajaremos, de entrada necesitamos un web form donde se
mostrará nuestro archivo PDF, tal como el que se muestra a continuación:
![]() |
Página de Contenido donde se mostrará el PDF en un Iframe. |
Código
de la página de contenido mostrada en la imagen anterior:
![]() |
Código de la página de contenido que muestra el Pdf en el Iframe. |
<h1 style="text-align:center;">ASP.Net, Visualizando PDF en Iframe Desde Cualquier Unidad
De Nuestro Disco Duro.</h1>
<hr />
<br />
<br />
<div style="text-align:center;">
<asp:Button ID="btnVisualizar" Text="Visualizar PDF" runat="server" OnClick="btnVisualizar_Click" />
<hr />
</div>
<br />
<iframe id="MyIframe" runat="server" style="height: 611px; width: 99%;"></iframe>
Seguidamente,
nos ubicamos en el evento click del botón
que visualizará nuestro archivo PDf y colocamos el siguiente código:
//Nombre
del archivo que queremos mostrar en el Iframe
string FileName = "Ejemplo.pdf";
//Se
indica al Iframe el origen del archivo PDF que debe mostrar.
MyIframe.Attributes["src"] = "Default19.aspx?" + FileName;
//Nota
que el PDF a visualizar será mandado a través de una página de contenido
//que lo de volverá como si se fuese a descargar, para
este caso la página se llama Default19.aspx.
Una
vez diseñada nuestra página de contenido donde se mostrará el archivo PDF, lo siguiente consiste en diseñar la página
de contenido que se encargará de transformar nuestro archivo PDf en un flujo de
datos que mostrará el Iframe. Para ello colocamos en el evento Load de la página el siguiente código:
//Direccion
física del archivo PDF que queremos visualizar.
//NOTA:
Como el nombre del archivo lo pasamos a través de la URL, por eso es necesario
//obtenerlo
a traves del objeto REQUEST.
string FileName = @"C:\ArchivosPDF\" +
Request.QueryString.ToString();
//Borra
todas las salidas del flujo de memoria
Response.ClearContent();
//Borra
todos los encabezados del flujo de memoria
Response.ClearHeaders();
//Añade una cabecera HTTP al flujo de salida
Response.AddHeader("Content-Disposition", "inline;filename=" + FileName);
//Obtiene
o establece el tipo MIME de HTTP del flujo de salida
Response.ContentType = "application/pdf";
//Escribe
el contenido del archivo especificado en un flujo de salida de respuesta HTTP
como un bloque de archivos
Response.WriteFile(FileName);
//envía
toda la salida del buffer al cliente
Response.Flush();
//Borra
todas las salidas de contenidos del flujo de memoria
Response.Clear();
Notar
que la variable de tipo cadena fileName, contiene la
ruta física exacta de donde se ubica el archivo PDf que queremos mostrar en el
Iframe.
Si todo
ha salido correctamente, debemos poder visualizar nuestro PDF en nuestro componente
Iframe, tal como se muestra en la siguiente imagen.
![]() |
Resultado Final donde se visualiza nuestro Archivo PDf en el Iframe. |
Nota
muy importante: Si cuentas con un gestor de descargas como el IDM, seguro el
flujo enviado desde nuestra página de contenido será interpretado por dicho
gestor y no dejará visualizarlo, bastara con deshabilitarlo para que todo funcione
correctamente.
Saludos
y espero les sea de utilidad!!! Gracias!!!
Muchas gracias por la ayuda.
ResponderBorrar