Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Programación: Convertir texto a PDF con iTextSharp y Visual Basic .Net VB.Net
Visual Studio .NET


Explicamos en este tutorial cómo convertir un texto plano (sin formato) a fichero PDF usando la DLL gratuita iTextSharp y el lenguaje de programación Microsoft Visual Basic .Net 2010. Publicamos una aplicación completa de ejemplo con el código fuente en VB.Net: AjpdSoft Convertir Texto a PDF.



Videotutorial AjpdSoft Convertir Texto a PDF

A continuación mostramos un videotutorial con la aplicación open source AjpdSoft Convertir Texto a PDF en funcionamiento:

 

Descarga del componente gratuito iTextSharp

Para desarrollar una aplicación que convierta texto en PDF (portable document format ó formato de documento portátil) usaremos la librería iTextSharp, por lo tanto necesitaremos descargar el fichero de esta librería dll. Accederemos a la URL:

http://sourceforge.net/projects/itextsharp

Descargaremos la versión más reciente de iTextSharp (iText#), en nuestro caso: iTextSharp 5.2.1. Se descargará el fichero itextsharp-all-5.2.1.zip, lo descomprimiremos. Este fichero contiene, a su vez, los siguientes ficheros comprimidos:

  • itextsharp-dll-cores-5.2.1.zip
  • itextsharp-dll-xtra-5.2.1.zip
  • itextsharp-src-core-5.2.1.zip
  • itextsharp-src-xtra-5.2.1.zip

iTextSharp está desarrollado en Microsoft Visual C# y, además, la descarga anterior incluye el código fuente completo (itextsharp-src-core-5.2.1.zip). En nuestro caso usaremos la DLL ya compilada de iTextSharp por lo que descomprimiremos el fichero "itextsharp-dll-cores-5.2.1.zip" que contiene el fichero itextsharp.dll, este será el fichero necesario para trabajar con ficheros PDF usando Visual Basic .Net (VB.Net) o Visual C#. Copiaremos este fichero a la carpeta que queramos (por ejemplo la raíz de nuestros proyectos). Más adelante deberemos seleccionarlo desde nuestro proyecto VB.Net:

Descarga del componente gratuito iTextSharp

Instalación de Microsoft Visual Studio .Net

Para desarrollar la aplicación que nos permita convertir texto a PDF usaremos el lenguaje de programación Microsoft Visual Basic .Net 2010 perteneciente a la suite de desarrollo Microsoft Visual Studio .Net. En el siguiente tutorial explicamos cómo instalar esta suite de desarrollo:

Convertir texto a PDF con VB.Net y iTextSharp

A continuación explicaremos cómo crear un proyecto o solución en Visual Basic .Net para convertir texto a PDF. Para ello abriremos Visual Basic .Net, pulsaremos en el menú "Archivo" - "Nuevo proyecto":

Convertir texto a PDF con VB.Net y iTextSharp

Seleccionaremos en la parte izquierda "Visual Basic" - "Windows", en la parte derecha seleccionaremos "Aplicación de Windows Forms" e introduciremos el nombre del proyecto, por ejemplo "AjpdSoftConvertirTextoPDF":

Convertir texto a PDF con VB.Net y iTextSharp

Agregaremos la referencia a iTextSharp (iText#), para ello pulsaremos en el menú "Proyecto" - "Agregar referencia":

Convertir texto a PDF con VB.Net y iTextSharp

Pulsaremos en la pestaña "Examinar" y seleccionaremos el fichero "itextsharp.dll" descargado anteriormente:

Convertir texto a PDF con VB.Net y iTextSharp

Añadiremos los "imports" al proyecto, para ello pulsaremos en el menú "Ver" - "Código":

Convertir texto a PDF con VB.Net y iTextSharp

Al principio agregaremos el siguiente código:

Convertir texto a PDF con VB.Net y iTextSharp

Imports iTextSharp
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports System.IO

Añadiremos los siguientes componentes al formulario principal de nuestra aplicación para convertir texto a PDF:

  • TextBox: con la propiedad "Multiline" a True, con nombre (name): txtTexto.
  • Button: cuatro botones para "Abrir fichero", "Limpiar texto", seleccionar fichero PDF, "Generar PDF".
  • TextBox: para los metadatos título, asunto, palabras clave, autor y para el fichero destino PDF.
  • OpenFileDialog: para selección de fichero de texto plano a abrir y convertir a PDF.
  • SaveFileDialog: para seleccionar fichero destino de conversión de texto a PDF.

Convertir texto a PDF con VB.Net y iTextSharp

A continuación mostramos el código fuente VB.Net de cada botón:

  • Botón "Abrir fichero":

  Private Sub btAbrirFicheroTexto_Click(sender As System.Object,
                 e As System.EventArgs) Handles btAbrirFicheroTexto.Click
        dlAbrir.CheckFileExists = True
        dlAbrir.CheckPathExists = True
        dlAbrir.Multiselect = False
        dlAbrir.DefaultExt = "txt"
        dlAbrir.FileName = ""
        dlAbrir.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*"
        dlAbrir.Title = "Abrir fichero de texto para convertir a PDF"
        If dlAbrir.ShowDialog = Windows.Forms.DialogResult.OK Then
            Dim objFichero As New  _
                System.IO.StreamReader(dlAbrir.FileName, System.Text.Encoding.Default)
            txtTexto.Text = objFichero.ReadToEnd
  End If

  • Botón "Limpiar texto":

    Private Sub btLimpiarTexto_Click(sender As System.Object,
                 e As System.EventArgs) Handles btLimpiarTexto.Click
        txtTexto.Text = ""
    End Sub

  • Botón "Seleccionar PDF":

    Private Sub btSeleccionarPDF_Click(sender As System.Object, _
                 e As System.EventArgs) Handles btSeleccionarPDF.Click
        dlGuardar.CheckFileExists = False
        dlGuardar.CheckPathExists = True
        dlGuardar.DefaultExt = "txt"
        dlGuardar.FileName = ""
        dlGuardar.Filter = "Archivos PDF (*.pdf)|*.pdf|Todos los archivos (*.*)|*.*"
        dlGuardar.Title = "Fichero PDF destino"
        If dlGuardar.ShowDialog = Windows.Forms.DialogResult.OK Then
            txtFicheroPDF.Text = dlGuardar.FileName
        End If
    End Sub

  • Botón "Generar PDF":

    Private Sub btGenerarPDF_Click(sender As System.Object,
                 e As System.EventArgs) Handles btGenerarPDF.Click
        If txtTexto.Text = "" Then
            MsgBox("Debe introducir el texto a convertir a PDF.",
                   MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
            txtTexto.Focus()
        Else
            If txtFicheroPDF.Text = "" Then
                MsgBox("Debe indicar el fichero PDF destino de la conversión del texto.",
                       MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
                txtFicheroPDF.Focus()
            Else
                Try
                    'Creamos el objeto documento PDF
                    Dim documentoPDF As New Document
                    PdfWriter.GetInstance(documentoPDF,
                        New FileStream(txtFicheroPDF.Text, FileMode.Create))
                    documentoPDF.Open()

                    'Escribimos el texto en el objeto documento PDF
                    documentoPDF.Add(New Paragraph(txtTexto.Text,
                          FontFactory.GetFont(FontFactory.TIMES, 11,
                              iTextSharp.text.Font.NORMAL)))

                    '  documentoPDF.Add(New Paragraph("Documento generado por http://www.ajpdsoft.com",
                    '      FontFactory.GetFont(FontFactory.COURIER, 8,
                    '          iTextSharp.text.Font.NORMAL)))

                    'Añadimos los metadatos para el fichero PDF
                    documentoPDF.AddAuthor(txtAutor.Text)
                    documentoPDF.AddCreator("AjpdSoft Convertir texto a PDF - www.ajpdsoft.com")
                    documentoPDF.AddKeywords(txtPalabrasClave.Text)
                    documentoPDF.AddSubject(txtAsunto.Text)
                    documentoPDF.AddTitle(txtTitulo.Text)
                    documentoPDF.AddCreationDate()
                    'Cerramos el objeto documento, guardamos y creamos el PDF
                    documentoPDF.Close()
                    'Comprobamos si se ha creado el fichero PDF
                    If System.IO.File.Exists(txtFicheroPDF.Text) Then
                        If MsgBox("Texto convertido a fichero PDF correctamente " + _
                               "¿desea abrir el fichero PDF resultante?",
                               MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                            'Abrimos el fichero PDF con la aplicación asociada
                            System.Diagnostics.Process.Start(txtFicheroPDF.Text)
                        End If
                    Else
                        MsgBox("El fichero PDF no se ha generado, " + _
                               "compruebe que tiene permisos en la carpeta de destino.",
                               MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
                    End If
                Catch ex As Exception
                    MsgBox("Se ha producido un error al intentar convertir el texto a PDF: " + _
                        vbCrLf + vbCrLf + ex.Message,
                        MsgBoxStyle.Critical + MsgBoxStyle.OkOnly)
                End Try
            End If
        End If
    End Sub

AjpdSoft Convertir Texto a PDF

AjpdSoft Convertir Texto a PDF permite convertir texto plano (sin formato) a fichero PDF sin necesidad de usar impresoras PDF ni Acrobat Professional. El manejo de la aplicación es muy sencillo, es suficiente con escribir el texto a convertir en el cuadro de texto, o bien pulsar en el botón "Abrir fichero" y seleccionar un fichero de texto plano, la aplicación lo mostrará en el cuadro de texto. Una vez que hayamos introducido el texto a convertir a PDF, introduciremos los metadatos: título, asunto, palabras clave y autor. Seleccionaremos el fichero PDF de destino (el que se creará en la conversión) en "Fichero PDF de destino" y para generar el fichero PDF pulsaremos en "Generar PDF":

AjpdSoft Convertir Texto a PDF

Si la conversión de texto a PDF se realiza correctamente la aplicación AjpdSoft Convertir Texto a PDF mostrará el siguiente mensaje, pulsando en "Sí" se abrirá el fichero PDF resultante:

AjpdSoft Convertir Texto a PDF

Con el texto: "Texto convertido a fichero PDF correctamente ¿desea abrir el fichero PDF resultante?"

El fichero PDF abierto con Acrobat Reader:

AjpdSoft Convertir Texto a PDF

Consultando las propiedades del fichero PDF generado podremos ver los metadatos introducidos anteriormente (título, autor, asunto, palabras clave, creador):

AjpdSoft Convertir Texto a PDF

Código fuente completo de AjpdSoft Convertir Texto a PDF

A continuación mostramos el enlace para descargar gratuitamente el código fuente completo de la aplicación AjpdSoft Convertir Texto a PDF desarrollada con VB.Net 2010 (Microsoft Visual Basic .Net 2010):

El listado completo del código fuente de la aplicación AjpdSoft Convertir Texto a PDF:

Imports iTextSharp
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports System.IO


Public Class formPDF

    Private Sub btLimpiarTexto_Click(sender As System.Object,
                 e As System.EventArgs) Handles btLimpiarTexto.Click
        txtTexto.Text = ""
    End Sub

    Private Sub btAbrirFicheroTexto_Click(sender As System.Object,
                 e As System.EventArgs) Handles btAbrirFicheroTexto.Click
        dlAbrir.CheckFileExists = True
        dlAbrir.CheckPathExists = True
        dlAbrir.Multiselect = False
        dlAbrir.DefaultExt = "txt"
        dlAbrir.FileName = ""
        dlAbrir.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*"
        dlAbrir.Title = "Abrir fichero de texto para convertir a PDF"
        If dlAbrir.ShowDialog = Windows.Forms.DialogResult.OK Then
            Dim objFichero As New  _
                System.IO.StreamReader(dlAbrir.FileName, System.Text.Encoding.Default)
            txtTexto.Text = objFichero.ReadToEnd
        End If
    End Sub

    Private Sub btGenerarPDF_Click(sender As System.Object,
                 e As System.EventArgs) Handles btGenerarPDF.Click
        If txtTexto.Text = "" Then
            MsgBox("Debe introducir el texto a convertir a PDF.",
                   MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
            txtTexto.Focus()
        Else
            If txtFicheroPDF.Text = "" Then
                MsgBox("Debe indicar el fichero PDF destino de la conversión del texto.",
                       MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
                txtFicheroPDF.Focus()
            Else
                Try
                    'Creamos el objeto documento PDF
                    Dim documentoPDF As New Document
                    PdfWriter.GetInstance(documentoPDF,
                        New FileStream(txtFicheroPDF.Text, FileMode.Create))
                    documentoPDF.Open()

                    'Escribimos el texto en el objeto documento PDF
                    documentoPDF.Add(New Paragraph(txtTexto.Text,
                          FontFactory.GetFont(FontFactory.TIMES, 11,
                              iTextSharp.text.Font.NORMAL)))

                    '  documentoPDF.Add(New Paragraph("Documento generado por http://www.ajpdsoft.com",
                    '      FontFactory.GetFont(FontFactory.COURIER, 8,
                    '          iTextSharp.text.Font.NORMAL)))

                    'Añadimos los metadatos para el fichero PDF
                    documentoPDF.AddAuthor(txtAutor.Text)
                    documentoPDF.AddCreator("AjpdSoft Convertir texto a PDF - www.ajpdsoft.com")
                    documentoPDF.AddKeywords(txtPalabrasClave.Text)
                    documentoPDF.AddSubject(txtAsunto.Text)
                    documentoPDF.AddTitle(txtTitulo.Text)
                    documentoPDF.AddCreationDate()
                    'Cerramos el objeto documento, guardamos y creamos el PDF
                    documentoPDF.Close()
                    'Comprobamos si se ha creado el fichero PDF
                    If System.IO.File.Exists(txtFicheroPDF.Text) Then
                        If MsgBox("Texto convertido a fichero PDF correctamente " + _
                               "¿desea abrir el fichero PDF resultante?",
                               MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                            'Abrimos el fichero PDF con la aplicación asociada
                            System.Diagnostics.Process.Start(txtFicheroPDF.Text)
                        End If
                    Else
                        MsgBox("El fichero PDF no se ha generado, " + _
                               "compruebe que tiene permisos en la carpeta de destino.",
                               MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
                    End If
                Catch ex As Exception
                    MsgBox("Se ha producido un error al intentar convertir el texto a PDF: " + _
                        vbCrLf + vbCrLf + ex.Message,
                        MsgBoxStyle.Critical + MsgBoxStyle.OkOnly)
                End Try
            End If
        End If
    End Sub

    Private Sub btSeleccionarPDF_Click(sender As System.Object, _
                 e As System.EventArgs) Handles btSeleccionarPDF.Click
        dlGuardar.CheckFileExists = False
        dlGuardar.CheckPathExists = True
        dlGuardar.DefaultExt = "txt"
        dlGuardar.FileName = ""
        dlGuardar.Filter = "Archivos PDF (*.pdf)|*.pdf|Todos los archivos (*.*)|*.*"
        dlGuardar.Title = "Fichero PDF destino"
        If dlGuardar.ShowDialog = Windows.Forms.DialogResult.OK Then
            txtFicheroPDF.Text = dlGuardar.FileName
        End If
    End Sub

    Private Sub formPDF_Load(sender As System.Object,
                e As System.EventArgs) Handles MyBase.Load
        txtFicheroPDF.Text =
            System.IO.Path.Combine(System.Environment.GetFolderPath(
                Environment.SpecialFolder.MyDocuments), "documento.pdf")
    End Sub
End Class

Artículos relacionados

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.

Artículo en inglés.


Anuncios


Enviado el Lunes, 07 mayo a las 00:04:20 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A