none
Establecer tamaño de fuente al generar pdf con itextSharp RRS feed

  • Pregunta

  • Hola

    Se requiere generar un .pdf con el contenido de un GridView ajustando el ancho de las columnas y el tamaño de fuente

    Para ajustar el ancho de las columnas se toma como base el siguiente ejemplo:https://www.aspsnippets.com/Articles/Export-ASP.Net-GridView-to-PDF-with-Custom-Columns-Widths-using-iTextSharp.aspx

    En el ejemplo se genera la columna del tamaño deseado pero la fuente para cada una de las celdas es demaciado grande y la idea es reducir su tamaño.

    La consulta es:

    Al establecer el tamaño de la fuente de la siguiente manera:

     <asp:BoundField ItemStyle-Width = "200px" ItemStyle-Font-Size="X-Small" DataField = "nombres" HeaderText = "nombre" />

    De que manera se puede asignar el tamaño de fuente basados en el ejemplo citado?

       'Create a table
            Dim table As New iTextSharp.text.Table(GridView1.Columns.Count)
            table.Cellpadding = 5
    
            'Set the column widths 
            Dim widths As Integer() = New Integer(GridView1.Columns.Count - 1) {}
            For x As Integer = 0 To GridView1.Columns.Count - 1
                widths(x) = CInt(GridView1.Columns(x).ItemStyle.Width.Value)
                widths(x) = CInt(GridView1.Columns(x).ItemStyle.Font.Size.Unit = 2)
                Dim cellText As String = Server.HtmlDecode(GridView1.HeaderRow.Cells(x).Text)
                Dim cell As New iTextSharp.text.Cell(cellText)
                cell.BackgroundColor = New Color(System.Drawing.ColorTranslator.FromHtml("#008000"))
                table.AddCell(cell)
            Next
            table.SetWidths(widths)
    
            'Transfer rows from GridView to table
            For i As Integer = 0 To GridView1.Rows.Count - 1
                If GridView1.Rows(i).RowType = DataControlRowType.DataRow Then
                    For j As Integer = 0 To GridView1.Columns.Count - 1
                        Dim cellText As String = Server.HtmlDecode(GridView1.Rows(i).Cells(j).Text)
                        Dim cell As New iTextSharp.text.Cell(cellText)
    
                        'Set Color of Alternating row
                        If i Mod 2 <> 0 Then
                            cell.BackgroundColor = New Color(System.Drawing.ColorTranslator.FromHtml("#C2D69B"))
                        End If
                        table.AddCell(cell)
                    Next
                End If
            Next

    Desde ya mil gracias.


    Respuesta de foro Microsoft


    • Editado yulfredy jueves, 22 de abril de 2021 6:17
    jueves, 22 de abril de 2021 6:09

Todas las respuestas

  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    jueves, 22 de abril de 2021 16:06
    Moderador