Funcionalidad de iTextSharp usando Visual Basic .net[primera entrega: generación de un documento PDF]
Fecha: 24/Dic/2005 (24-12-05)
|
Hola gente, lo que voy a compartirles es algo breve y sencillo. Se trata de aprovechar la funcionalidad de iTextSharp. ¿ qué es esto?, pues te cuento que no viene a ser más que una dll que nos brinda ciertas funcionalidades que nos ayudarán en la creación de documentos txt, rtf, doc, pdf, html y xml (creo que eso es todo, ojalá no se me escape alguna), como también poder setearles algunas propiedades con valores como fuente, márgenes, tamaño de página, estilo de página, presentación inicial..., y una que otras cosas más que explicaré en el siguiente ejemplo. ah!, se me olvidaba, (es por el sueño, créanme !), que para esto, debes de descargar la DLL itextSahrp desde este site, luego debes importarlo en tu proyecto y listo!... por fin podrás trabajar con él. Aprenderemos todas estas explotar estas funcionalidades en cada una de las entregas que estoy preparando en estos días, pero por ahora les dejo, esto de, generar un documento pdf, que viene a ser la primera entrega.
Creo que un ejemplo vale más que mil palabras, así que si deseas informarte más acerca de itextSharp, puedes buscarlo usando san google, además para que matarme la cabeza escribiendo la teoría, si esto lo puedes bajar de la red. Mejor vamos con este sencillo ejemplo. Crearemos una aplicación windows en Visual Basic , la cual debe ser parecido a esta, y programaremos el evento click de control Button "Generar PDF".
Luego, generaremos un documento pdf con el contenido fuente de Form1.vb, así es, usaremos este archivo para leerlo y generarlo el pdf. Entonces de esta manera nuestro documento pdf tendrá como contenido el texto del archivo Form1.vb. Después de generarlo esta debe abrirse con el programa de aplicación Adobe Acrobat, (esto también debe ser programado). Al final está la aplicación para que puedas bajártelo, por si las moscas quieres probar el código y por allí, quien sabe, modificarlo y adecuarlo para ti.
Entonces, en el proyecto windows en Visual Basic, agregaremos la referencia a esta dll (supongo que ya la bajaste del site que te dije. Click derecho en el proyecto, y luego en Add Reference.
Ahora, busca la DLL, y dale ok. finalmente tendrás la librería itextsharp dentro del proyecto para que puedas usarlo.
luego de programar el vento click de button, este se abrirá, como ya de dije, y usted podrá ver los resultados como se muestra en la siguiente imagen. (esta es una captura parcial).
Este es el código, espero que te sea de utilidad. revísalo !.
Imports iTextSharp.text Imports iTextSharp.text.pdf Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Friend WithEvents BtnGenerarPDF As System.Windows.Forms.Button <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.BtnGenerarPDF = New System.Windows.Forms.Button Me.SuspendLayout() ' 'BtnGenerarPDF ' Me.BtnGenerarPDF.Location = New System.Drawing.Point(24, 16) Me.BtnGenerarPDF.Name = "BtnGenerarPDF" Me.BtnGenerarPDF.Size = New System.Drawing.Size(184, 32) Me.BtnGenerarPDF.TabIndex = 0 Me.BtnGenerarPDF.Text = "Generar PDF" ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(240, 62) Me.Controls.Add(Me.BtnGenerarPDF) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) End Sub #End Region 'codigo generado por el dieñador de windows Private Sub BtnGenerarPDF_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnGenerarPDF.Click 'creamos el documento '...ahora configuramos para que el tamaño de hoja sea A4 Dim document As Document = New Document(iTextSharp.text.PageSize.A4) document.PageSize.BackgroundColor = New iTextSharp.text.Color(255, 255, 255) document.PageSize.Rotate() '...definimos el autor del documento. document.AddAuthor("Arbis Percy Reyes Paredes") ' '//...el creador, que será el mismo eh! document.AddCreator("Arbis Percy Reyes Paredes") 'hacemos que se inserte la fecha de creación para el documento document.AddCreationDate() '...título document.AddTitle("Generación de un pdf con itextSharp") '... el asunto document.AddSubject("Este es un paso muy important") '... palabras claves document.AddKeywords("pdf, PdfWriter; Documento; iTextSharp") 'creamos un instancia del objeto escritor de documento Dim writer As PdfWriter = PdfWriter.GetInstance(document, New System.IO.FileStream _ ("Code.pdf", System.IO.FileMode.Create)) 'encriptamos el pdf, dándole como clave de usuario "key" y la clave del dueño será "owner" 'si quitas los comentarios (en writer.SetEncryption...), entonces el documento generado 'no mostrarà tanto la información de autor, titulo, fecha de creacion... 'que habiamos establecio más arriba. y sólo podrás abrirlo con una clave 'writer.SetEncryption(PdfWriter.STRENGTH40BITS,"key","owner", PdfWriter.CenterWindow); 'definimos la manera de inicialización de abierto del documento. 'esto, hará que veamos al inicio, todas la páginas del documento 'en la parte izquierda writer.ViewerPreferences = PdfWriter.PageModeUseThumbs 'con esto conseguiremos que el documento sea presentada de dos en dos writer.ViewerPreferences = PdfWriter.PageLayoutTwoColumnLeft 'con esto podemos oculta las barras de herramienta y de menú respectivamente. '(quite las dos barras de comentario de la siguiente línea para ver los efectos) 'PdfWriter.HideToolbar | PdfWriter.HideMenubar 'abrimos el documento para agregarle contenido document.Open() 'este stream es para jalar el código Dim TemPath As String = Application.StartupPath.ToString() TemPath = TemPath.Substring(0, TemPath.Length - 4) Dim pathFileForm1cs As String = TemPath + "\Form1.vb" Dim reader As System.IO.StreamReader = New System.IO.StreamReader(pathFileForm1cs) 'leemos primera línea Dim linea As String = reader.ReadLine() 'creamos la fuente Dim myfont As iTextSharp.text.Font = New iTextSharp.text.Font( _ FontFactory.GetFont(FontFactory.COURIER, 10, iTextSharp.text.Font.ITALIC)) 'creamos un objeto párrafo, donde insertamos cada una de las líneas que 'se vaya leyendo mediante el reader Dim myParagraph As Paragraph = New Paragraph("Código fuente en Visual C# \n\n", myfont) Do 'leyendo linea de texto linea = reader.ReadLine() 'concatenando cada parrafo que estará formado por una línea myParagraph.Add(New Paragraph(linea, myfont)) Loop While Not (linea Is Nothing) 'mientras no llegue al final de documento, sigue leyendo 'agregar todo el paquete de texto document.Add(myParagraph) 'esto es importante, pues si no cerramos el document entonces no se creara el pdf. document.Close() 'esto es para abrir el documento y verlo inmediatamente después de su creación System.Diagnostics.Process.Start("AcroRd32.exe", "Code.pdf") End Sub End ClassHemos terminado de explicar esta primera parte. Nos vemos en la siguiente entrega.
Microsoft Certified Professional
Estudiante Ing. de Sistemas
Universidad Nacional de TrujilloSaludos desde Trujillo - Perú
Por favor, califica este artículo en Panoramabox, así me animarás a continuar colaborando contigo.
Fichero con el código de ejemplo: bigpercynet_iTextSharp_vb.zip - 8.72 KB