Descarga contenido exclusivo en
Ofimática y Programación + Tecnología

domingo, 27 de mayo de 2012



iTextSharp y VB .Net: Texto simple


The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License versi... thumbnail 1 summary
The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3. Please read the terms of use before downloading iText.

Descarga iTextSharp: http://itextpdf.com/download.php

Esta es una excelente librería muy útil para la creación de documentos pdf desde Microsoft Visual Basic 2010 Express, lo que permite que nuestras aplicaciones puedan generar reportes directamente en formato pdf.

En esta sección vamos a explorar la inserción de Texto de una forma muy básica.

1
Crear un proyecto nuevo. Agregar la referencia a la librería. Isertar un Button para agregar el código que creara nuestro pdf. Agregar un SaveFileDialog que nos permitirá elegir donde guardar nuestro pdf.




2
En el Form1 y Button1 dejar el código como sigue:


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


Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ruta As Integer
        Save.Filter = "Archivos Adobe PDF (*.pdf)|*.pdf"
        'save.FileName = t2.Text
        ruta = Save.ShowDialog
        If ruta = 2 Then GoTo salir

        Try
            Kill(Save.FileName)
        Catch ex As Exception
        End Try

        Dim oDoc As New iTextSharp.text.Document(PageSize.LETTER, 40, 20, 0, 0)
        Dim pdfw As iTextSharp.text.pdf.PdfWriter
        Dim cb As PdfContentByte
        Dim linea As PdfContentByte
        Dim rectangulo As PdfContentByte
        Dim fuente As iTextSharp.text.pdf.BaseFont
        Dim NombreArchivo As String = Save.FileName
        Try
            pdfw = PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _
            FileMode.Create, FileAccess.Write, FileShare.None))

            'Apertura del documento.
            oDoc.Open()
            cb = pdfw.DirectContent
            linea = pdfw.DirectContent
            rectangulo = pdfw.DirectContent

            'Agregamos una pagina.
            oDoc.NewPage()

            'Iniciamos el flujo de bytes.
            cb.BeginText()


            
            'aquí ira el código para construir el contenido del pdf




            'Fin del flujo de bytes.
            cb.EndText()
            'Forzamos vaciamiento del buffer.
            pdfw.Flush()
            'Cerramos el documento.
            oDoc.Close()
        Catch ex As Exception
            'Si hubo una excepcion y el archivo existe …
            If File.Exists(NombreArchivo) Then
                'Cerramos el documento si esta abierto.
                'Y asi desbloqueamos el archivo para su eliminacion.
                If oDoc.IsOpen Then oDoc.Close()
                '… lo eliminamos de disco.
                File.Delete(NombreArchivo)
            End If
            Throw New Exception("Error al generar archivo PDF (" & ex.Message & ")")
        Finally
            cb = Nothing
            pdfw = Nothing
            oDoc = Nothing
        End Try
salir:
    End Sub
End Class


con lo anterior si ejecutamos el proyecto y damos clic al Button1 se abrira el cuadro de dialogo para guardar y se creara un documento pdf en blanco.


3
En la linea de código: 'aquí ira el código para construir el contenido del pdf agregar lo siguiente:


            'Instanciamos el objeto para el tipo de letra.
            fuente = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL).BaseFont
            cb.SetFontAndSize(fuente, 8) 'fuente definida en la linea anterior y tamaño
            cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "TEXTO de prueba (centro)", 315, 730, 0) 'alineación, texto a escribir y posición

            cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "TEXTO de prueba (izquierda)", 315, 700, 0)

            cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, "TEXTO de prueba (derecha)", 315, 670, 0)


En la justificación IZQUIERDA la coordenada de la posición indicada queda a la izquierda del texto. Y en la justificación DERECHA la coordenada de la posición indicada queda a la derecha del texto. El texto solo se escribe hacia el lado correspondiente sin cruzar la linea vertical verde como se muestra en la siguiente imagen (la linea esta ubicada en el punto 315) esto puede resultarnos un poco confuso al principio:


También hay que tomar en cuenta que la primera parte de la coordenada, es decir 315, se marca de izquierda a derecha; y la segunda parte de la coordenada, es decir 730, 700 y 670 se marcan desde abajo hacia arriba.

EL archivo ejemplo lo encuentran aquí: itextsharp - texto.rar






POPULARES EN LA RED
POPULARES EN LA RED