lunes, 13 de agosto de 2012

VB.NET - Mostrar un documento PDF en un Formulario Windows Forms

Hola nuevamente, mediante esta aplicacion aprenderemos a como mostrar un documento digital PDF en un formulario Windows Forms, para esto necesitaremos como pre.requisitos lo sgte:

1.- Tener instalado el Visual Studio, ya sea 2005 o versiones superiores.
2.- Tener en el equipo local la DLL AcroPDF.dll, la cual nos ayudara en nuestro objetivo.

Primeramente deberemos tener instalado el programa Adobe Reader, en nuestro caso instalaremos la ultima version de este programa (hasta el momento Adobe Reader 10.1.3), para eso ingresaremos a su Pagina Web Oficial.
Seguidamente buscamos en el Menu de la parte superior y daremos click en Downloads, mostrando la sgte pagina:
Seguidamente daremos click al boton Get Adobe Reader, mostrandonos la sgte pagina:
Como no quiero Instalar el McAfee desactivo el check y daremos click al boton Download now, mostrandonos la sgte pagina:
Instantaneamente nos mostrara una ventana en la cual deberemos indicar en que parte de nuestro equipo descargaremos el instalador.
Una vez especificado lo anterior daremos click al boton Save, una vez terminada la descarga procederemos a ejecutar el instalador.
Seguidamente daremos click al boton Run y aceptar la instalacion. Comienza la descarga de los archivos necesarios para la instalacion.
Una vez terminada la descarga (que puede demorar segun sea tu velocidad de conexión) nos mostrara la sgte pantalla:
Seguidamente damos click al boton Finalizar, con esto ya tenemos el programa instalado.

Ahora la primera pregunta que nos hariamos seria: en que ruta de mi equipo local se encuentra la DLL AcroPDF.dll?

Bien, esta DLL se encuentra en la sgte ruta (en mi caso)

C:\Program Files (x86)\Common Files\Adobe\Acrobat\ActiveX

Esta ruta puede variar, dependiendo en que particion estes corriendo tu windows (C, D, E si es que tuvieses varios SO instalados) y del idioma del mismo (en mi caso mi version es en ingles)

Ahora crearemos una carpeta llamada Proyecto_PDF la cual contendra nuestro proyecto, puedes crearla en tu unidad D.

Seguidamente crearemos nuestra Aplicacion de Windows Forms, para eso iniciaremos Visual Studio.
Una vez inicializado procederemos a crear un nuevo Proyecto, para eso daremos click al Menu Archivo y click en New Proyect, asi como en la imagen:
Seguidamente nos mostrara una ventana en la cual en Proyect Types elegiremos Windows y en Templates elegiremos Windows Forms Application, asignaremos por nombre al proyecto AppPDF, asi como en la imagen:
Seguidamente daremos click al boton OK, procediendo a crear dicho proyecto, teniendo asi:
Seguidamente realizaremos el diseño de nuestro formulario.
Controles Agregados:
  • Panel: Este panel se le establecio la propiedad Dock con el valor Top y se ajusto tal como en la imagen.
  • Button: Dos botones agregados dentro del Panel, el primer boton de lado izquierdo tiene por nombre btnOpen y el segundo de nombre btnClose.
Seguidamente agregaremos a nuestro proyecto las DLLs correspondientes, para esto seleccionamos nuestro proyecto (AppPDF), le damos click derecho y click en Add Reference, como en la imagen:
Seguidamente nos mostrara una ventana con un listado de componentes.
Seguidamente nos ubicaremos en la pestaña Browse, seteamos la ruta en donde se encuentran las DLLs de Adobe (en mi caso C:\Program Files (x86)\Common Files\Adobe\Acrobat\ActiveX) y seleccionamos todas, como en la imagen:
Seguidamente daremos click al boton OK, luego procederemos a añadir el control de Adobe el cual nos permitira ver en nuestro formulario un documento PDF, para esto en Toolbox daremos click derecho y click en Choose Items, como en la imagen:
Seguidamente nos mostrara una ventana en la cual nos ubicaremos en la pestaña COM Components y marcaremos el check del componente Adobe PDF Reader, como en la imagen:
Una vez marcado daremos click al boton OK. Si verificamos el Toolbox notaremos que se agrego un nuevo control llamado Adobe PDF Reader, como en la imagen;
Ahora arrastraremos este control a nuestro formulario, teniendo asi:
A este control en la propiedad Dook le asignaremos el valor Fill, para que se ajuste al tamaño del formulario, teniendo asi:
El código del programa es el sgte:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ofdOpen.Filter = "Documento Digital (*.pdf)|*.pdf"
        ofdOpen.FileName = ""
        ofdOpen.InitialDirectory = "C:\"
        AxAcroPDF1.setShowToolbar(True)
    End Sub
    Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
        If ofdOpen.ShowDialog() = Windows.Forms.DialogResult.OK Then
            AxAcroPDF1.src = ofdOpen.FileName
        End If
    End Sub
    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        Me.Close()
    End Sub
End Class

Ahora guardaremos nuestro proyecto dando click al boton Guardar, al hacerlo nos mostrara la sgte ventana.
Ahora setearemos la carpeta en donde guardaremos el proyecto, teniendo asi:
Una vez seteado damos click al boton Save, seguidamente ejecutaremos nuestra aplicacion con la tecla F5, en mi caso, como estoy ejecutando el aplicativo en un SO de 64 bits me mostrara el sgte mensaje:
Para evitar este problema deberemos cambiar una pequeña modificacion, para esto daremos click al Menu Generar y luego click en Configuration Manager, como en la imagen:
Al dar click nos mostrara la sgte ventana.
Seguidamente en la opcion Active solution platform elegiremos el Item New, como en la imagen:
En esta ventana en la opcion Type or select the new platform elegiremos X86, asi como en la imagen:
Seguidamente daremos click al boton OK, mostrandonos la ventana anterior.
Seguidamente cerramos la ventana mediante el boton Close, Ahora ejecutamos nuestra aplicacion mediante la tecla F5, al hacerlo se mostrara nuestra pantalla.
Ahora para elegir un documento PDF daremos click al boton Abrir Documento PDF, al hacerlo nos mostrara una ventana en la cual elegiremos nuestro documento PDF de nuestra preferencia, como en la imagen:
Seguidamente daremos click al boton Open e inmediatamente visualizaremos dicho contenido en nuestro formulario, asi como en la imagen:
Puedes descargar el Proyecto desde el sgte link:

11 comentarios:

  1. Excelente Post, dejame tu correo para cualquier consulta....


    Saludos,

    ResponderEliminar
  2. Gracias por el aporte, muy bien explicado

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. Cuando agrego el control me da el siguiente mensaje "Los siguientes controles se agregaron correctamente al cuadro de herramientas pero no estan habilitados en el diseñador activo"

    sabes a que se debe?

    ResponderEliminar
    Respuestas
    1. Porque lo haces en C# (o orientada a objetos) y el post esta en visual

      Eliminar
  6. brother se puede meter zoom a ese visor

    ResponderEliminar
  7. Buenos días, tengo un problema al generar el ensamblado de la aplicación, cuando la ejecuto desde el editor, es decir presionando F5 no tengo problemas pero una vez que lo pongo en producción y ejecuto el .EXE me genera error, me dice que no puede encontrar el el archivo de la librería. Alguien sabe como solventar esto=?

    ResponderEliminar
  8. El problema cuando queremos hacer un publish para instalarlo en un equipo que usa otro soft para PDF como FOXIT, trae problemas porque no agrega los componentes en el paquete de instalación

    ResponderEliminar