none
Cambiar Tamaño de columnas de datagrid al momento de exportarlo al PDF ITextSharp RRS feed

  • Pregunta

  • Bueno estoy exportando un datagrid hacia un PDF con el siguiente codigo:

    PdfPTable tableDG = new PdfPTable( dataGridView1.Columns.Count);
                //actual width of table in points
                tableDG.TotalWidth = 550f;
                //fix the absolute width of the table
                tableDG.LockedWidth = true;
                //leave a gap before and after the table
                tableDG.SpacingBefore = 15f;
                tableDG.SpacingAfter = 10f;
    
    for (int j=0;j<dataGridView1.Columns.Count;j++)
    {
        PdfPCell AzulColumnas = new PdfPCell(new Phrase(dataGridView1.Columns[j].HeaderText,blanco));
        AzulColumnas.BackgroundColor = new iTextSharp.text.Color(122, 172, 247);
        tableDG.AddCell( AzulColumnas);
    }
    
    tableDG.HeaderRows = 1;
    
    for (int i = 0; i<dataGridView1.Rows.Count;i++)
    {
       for (int k = 0; k<dataGridView1.Columns.Count;k++)
        {
          if (dataGridView1[k,i].Value != null)
          {
              tableDG.AddCell(new Phrase(dataGridView1[k, i].Value.ToString(),normalFont));
    
          }
    
        }
    }

    Ahora mi problema es que quiero cambiar el tamaño especifico de mis encabezados o columnas, estos se encuentran en este codigo for:

    for (int j=0;j<dataGridView1.Columns.Count;j++)
    {
        PdfPCell AzulColumnas = new PdfPCell(new Phrase(dataGridView1.Columns[j].HeaderText,blanco));
        AzulColumnas.BackgroundColor = new iTextSharp.text.Color(122, 172, 247);
        tableDG.AddCell( AzulColumnas);
    }

    Ahi es donde deberia cambiar el tamaño mas bien el ancho de cada encabezado o columna, alguien me puede orientar por favor, se los agradeceria mucho. De antemano gracias, saludos.



    alfredo cervantes

    miércoles, 27 de mayo de 2015 18:15

Respuestas

  • Aqui esta la solucion que encontre, no se si sea la mas adecuada pero logre hacer lo que buscaba.

    Desde un principio se que yo tengo n columnas en mi caso son 4 y con eso le doy ancho a cada una de mis columnas con el siguiente codigo.

    //crear tabla
    PdfPTable tablaSellos = new PdfPTable(4);
    tablaSellos.TotalWidth = 550f;
    tablaSellos.LockedWidth = true;
    
    //se conforma el ancho para pasarlo a la tabla , dependiendo del numero de columnas.
    float[] TamColum = new float[] { 0.8f, 1.3f, 0.7f,0.4f};
    tablaSellos.SetWidths(TamColum);
    
    tablaSellos.HorizontalAlignment = 1;
    tablaSellos.SpacingBefore = 15f;
    tablaSellos.SpacingAfter = 20

    Mi problema lo resolvi asi y pude terminar mi trabajo gracias a esto. Pero alguien sabe, si no se supiera cuantas columnas tengo y pueden ser n columnas, como mandar el ancho a cada una de las columnas?


    alfredo cervantes


    jueves, 11 de junio de 2015 16:50

Todas las respuestas

  • Hola amigo:

    Intenta este tutorial:

    http://www.dotnetfox.com/articles/how-to-change-pdf-document-page-size-in-Asp-Net-with-C-Sharp-usng-itextsharp-1024.aspx

    SI MI RESPUESTA TE FUE DE UTILIDAD, AYUDAME CON UN VOTO UTIL

    SALUDOS

    ZAHID BARRERA

    miércoles, 10 de junio de 2015 21:07
  • Hola gracias por la ayuda, hace poco pude resolver, no se si haya sido de la mejor forma péro lo logre , ahora que abriste de nuevo esta pregunta pondre mi solucion para ver si alguien le sirve. Gracias de todos modos.

    alfredo cervantes

    jueves, 11 de junio de 2015 16:40
  • Aqui esta la solucion que encontre, no se si sea la mas adecuada pero logre hacer lo que buscaba.

    Desde un principio se que yo tengo n columnas en mi caso son 4 y con eso le doy ancho a cada una de mis columnas con el siguiente codigo.

    //crear tabla
    PdfPTable tablaSellos = new PdfPTable(4);
    tablaSellos.TotalWidth = 550f;
    tablaSellos.LockedWidth = true;
    
    //se conforma el ancho para pasarlo a la tabla , dependiendo del numero de columnas.
    float[] TamColum = new float[] { 0.8f, 1.3f, 0.7f,0.4f};
    tablaSellos.SetWidths(TamColum);
    
    tablaSellos.HorizontalAlignment = 1;
    tablaSellos.SpacingBefore = 15f;
    tablaSellos.SpacingAfter = 20

    Mi problema lo resolvi asi y pude terminar mi trabajo gracias a esto. Pero alguien sabe, si no se supiera cuantas columnas tengo y pueden ser n columnas, como mandar el ancho a cada una de las columnas?


    alfredo cervantes


    jueves, 11 de junio de 2015 16:50