martes, 20 de octubre de 2015

Generar archivo PDF usando la libreria ITextSharp

Hola a todos,
bienvenidos a mi nuevo blog de practicas en visual basic 2010 donde publicaré proyectos y tutoriales interesantes de ese logiciel.
Quería empezar con ese proyecto donde se usa la clase ITextSharp que tenemos que descargar en ese enlace.
aprenderemos a usar esa clase para generar archivos pdf a partir de texto y imagenes.
La entrada del texto sera desde el componente RichTextBox (el primero del formulario) y la imagen en el PictureBox que tenemos que seleccionar de nuestro PC.
Al hacer clic en el botón "Generar PDF" se creara el archivo "Ejemplo_pdf.pdf" en la carpeta <Debug> de nuestro proyecto.
Notando eso mi vino la idea de dar la posibilidad en el programa de poder abrir un OpenFileDialog, nombrar el archivo pdf y seleccionar la carpeta donde lo queremos guardar.
Estoy esperando vuestras sugerencias.
Así que manos a la obra.

Después de descargar el paquete zip tendremos que copiar los archivos dll a la carpeta donde hemos creado nuestro proyecto Visual Basic.
Necesitaremos los archivos:
  • itextsharp.dll
  • itextsharp.pdfa.dll
  • itextsharp.xtra.dll 
En nuestro proyecto de Visual Basic tenemos que agregar recursos y añadir referencias seleccionando los tres archivos dll.




Vamos a crear un formulario con los siguientes herramientas:
  • RichTextBox: RichTextBox1
  • dos label: Label1 y Label2
  • un pictureBox: PictureBox1
  • OpenFileDialog: OpenFileDialog1
  • Un boton: btnSeleccionarImagen
  • Un boton: btnGenerarPDF
  • Un textBox: txtRutaImagen
Así que tendremos el formulario siguiente:

En el la primera zona de texto escriberemos el texto que queremos poner en el archivo final y el botón seleccionar imagen nos permite seleccionar la imagen para nuestro archivo.

Código:

Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO
Public Class Form1

    Private Sub btnGenerarPDF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGenerarPDF.Click
        Dim pdfDoc As New Document()
        Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(pdfDoc, New FileStream("Ejemplo_Pdf.pdf", FileMode.Create))

        pdfDoc.Open()

        pdfDoc.Add(New Paragraph(RichTextBox1.Text))
        Dim img As Image = Image.GetInstance(txtRutaImagen.Text)
        pdfDoc.Add(img)
        pdfDoc.Close()
    End Sub

    Private Sub btnSeleccionarImagen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSeleccionarImagen.Click
        OpenFileDialog1.ShowDialog()
        txtRutaImagen.Text = OpenFileDialog1.FileName
        PictureBox1.ImageLocation = txtRutaImagen.Text
    End Sub
End Class

Espero que os haya gustado es proyecto y hasta la proxima.