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.
- Descarga del componente gratuito iTextSharp.
- Instalación de Microsoft Visual Studio .Net.
- Convertir texto a PDF con VB.Net y iTextSharp.
- AjpdSoft Convertir Texto a PDF.
- Código fuente completo de AjpdSoft Convertir Texto a PDF.
- Artículos relacionados.
- Créditos.
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:
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":
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:
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.
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":
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:
Con el texto: "Texto convertido a fichero PDF correctamente ¿desea 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 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
- AjpdSoft Convertir Texto a PDF código fuente Visual Basic .Net.
- Generar y leer códigos QR Quick Response Barcode con Visual Basic .Net VB.Net.
- Cómo desarrollar una aplicación de servicio en Windows con Visual Basic .Net.
- Estructura del código de barras EAN 13 y ejemplo en Delphi de obtención de datos.
- Metadatos, cómo eliminarlos, cómo consultarlos, peligrosos para la privacidad.
- AjpdSoft Generador de códigos de barras.
- AjpdSoft extraer texto PDF Delphi.
- Desarrollar aplicación lector de códigos de barras para Android con App Inventor.
- AjpdSoft Socket VB.Net.
- AjpdSoft Envío SMS VB.Net.
- AjpdSoft Inventario PCs - Código fuente Delphi.
- Insertar evento de Google Calendar con Visual Basic .Net y Google Data API.
- AjpdSoft Insertar Evento Google Calendar VB.net.
- Crear proceso en segundo plano con barra de progreso en Visual Basic .Net VB.Net.
- Instalar Visual Studio 2010 y desarrollar aplicación con acceso a PostgreSQL.
- El control de errores en Visual Basic .Net.
- Acceso a MySQL mediante Visual Basic .Net y ODBC.
- Acceso a Oracle mediante Microsoft Visual Basic, RDO y ODBC.
- Insertar y extraer documentos en una tabla Oracle con Visual Basic 6.
- Cambiar marcadores de Word por valores del formulario de una aplicación.
- Exportar ListView a fichero CSV VB.Net.
- Función para reemplazar una cadena de texto dentro de otra - Visual Basic.
- Funciones para leer y escribir en ficheros INI VB.Net.
- AjpdSoft Envío EMail SSL VB.Net.
- AjpdSoft Conexión BD Visual Basic .Net.
- Artículos, manuales y trucos del Proyecto AjpdSoft sobre Microsoft Visual Studio.
- Todos los programas con código fuente en Visual Basic.
- Foro del Proyecto AjpdSoft sobre Visual Basic, Visual Studio .Net, VB.Net.
Créditos
Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.
No hay comentarios:
Publicar un comentario