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

lunes, 28 de mayo de 2012



iTextSharp y VB .Net: Tamaño de hoja y margenes


pay per click The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero Gen... 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

El tamaño de hoja en el archivo pdf creado con iTextSharp también es posible configurarlo así como sus margenes, para ello veamos el siguiente código:

 
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"
        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, 36, 36, 36, 36)   'aquí se coloca el tamañode hoja y los margenes
        Dim pdfw As iTextSharp.text.pdf.PdfWriter                                   '36 pt equivalen supuestamente a 0.5 pulgadas, aunque quiza depende
        Dim NombreArchivo As String = Save.FileName                                 'de la impresora porque a mi no me da exactamente 0.5 pulgadas pero si 
        Try                                                                         'es muy cercano
            pdfw = PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _
            FileMode.Create, FileAccess.Write, FileShare.None))

            'Apertura del documento.
            oDoc.Open()

            'Agregamos una pagina.
            oDoc.NewPage()


            Dim parafo As New Chunk("Esta es una prueba de tamaño de página y de la dimensión de los parrafos del documento que se esta creando")

            oDoc.Add(parafo)


            '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
            pdfw = Nothing
            oDoc = Nothing
        End Try
salir:
    End Sub
End Class



En la linea:
 
Dim oDoc As New iTextSharp.text.Document(PageSize.LETTER, 36, 36, 36, 36)
se coloca el tamaño de hoja y los margenes. Si esa línea la cambiamos por:
 
Dim oDoc As New iTextSharp.text.Document(PageSize.LETTER.Rotate, 36, 36, 36, 36)
también podremos girar la hoja para tener una orientación horizontal.

Descarga del ejemplo aquí: itextsharp - tamaño de hoja y margenes.rar