|
Programación: Convertir texto a PDF con iTextSharp y Visual Basic .Net VB.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 PDFA continuación mostramos un videotutorial con la aplicación open source AjpdSoft Convertir Texto a PDF en funcionamiento: Descarga del componente gratuito iTextSharpPara 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:
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 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:
Instalación de Microsoft Visual Studio .NetPara 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 iTextSharpA 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": 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": Agregaremos la referencia a iTextSharp (iText#), para ello pulsaremos en el menú "Proyecto" - "Agregar referencia": Pulsaremos en la pestaña "Examinar" y seleccionaremos el fichero "itextsharp.dll" descargado anteriormente: Añadiremos los "imports" al proyecto, para ello pulsaremos en el menú "Ver" - "Código": Al principio agregaremos el siguiente código:
Añadiremos los siguientes componentes al formulario principal de nuestra aplicación para convertir texto a PDF:
A continuación mostramos el código fuente VB.Net de cada botón:
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
Private Sub btLimpiarTexto_Click(sender As System.Object, e As System.EventArgs) Handles btLimpiarTexto.Click txtTexto.Text = "" 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 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 PDFAjpdSoft 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": 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:
El fichero PDF abierto con Acrobat Reader: Consultando las propiedades del fichero PDF generado podremos ver los metadatos introducidos anteriormente (título, autor, asunto, palabras clave, creador):
Código fuente completo de AjpdSoft Convertir Texto a PDFA 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éditosArtículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft. Anuncios
Enviado el Lunes, 07 mayo a las 00:04:20 por ajpdsoft
|
|