elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Paginar un pdf y alinear las columnas de un datagridview
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Paginar un pdf y alinear las columnas de un datagridview  (Leído 5,328 veces)
joalbela

Desconectado Desconectado

Mensajes: 30



Ver Perfil
Paginar un pdf y alinear las columnas de un datagridview
« en: 16 Marzo 2011, 22:38 pm »

Hola amigos necesito una yuda urgente, estoy generando un datagridview y l oestoy exportando a pdf me gustaria poder alinear las columnas como quiero y poder colocarle el numero de la hoja a cada una si algo aca dejo el codigo . mucahs gracias.



Código
  1. OdbcDataAdapter dta  =new OdbcDataAdapter (" SELECT a.cdgo_prdcto COD,a.nmbre_prdcto DESCRIPCION, SUM(b.cntdad)PMVTA,a.csto_rpscion CR, " +
  2.                                                   " a.clfccion_prmnnte P, a.clfccion_tmpral T,a.cdgo_brra EAN" +
  3.                                                   " from prdcto a , prmdio_vnta b " +
  4.                                                   " where estdo = 'A' " +
  5.                                                   " and a.cdgo_prdcto = b.cdgo_prdcto " +
  6.                                                   " group by 1,2,4,5,6,7 " +
  7.                                                    " order by 2 ", conn);
  8.  
  9.  
  10.  
  11.            DataSet dsdatos = new DataSet();
  12.            dta.Fill(dsdatos, "Datos");
  13.  
  14.            this.dataGridView1.DataMember = "Datos";
  15.            //this.dataGridView1.Columns(1).Width = 4400;
  16.            this.dataGridView1.DataSource = dsdatos;
  17.  
  18.  
  19.  
  20.        }
  21.  
  22.        private void Form1_Load(object sender, EventArgs e)
  23.        {
  24.  
  25.        }
  26.  
  27.        //private void dataGridView1_DefaultCellStyleChanged(object sender, EventArgs e)
  28.  
  29.        private void btnExportar_Click(object sender, EventArgs e)
  30.        {
  31.  
  32.  
  33.            DateTime hora = DateTime.Now;
  34.            string fcha_ttal = Convert.ToDateTime(hora).Day + "/" + Convert.ToDateTime(hora).Month + "/" + Convert.ToDateTime(hora).Year;
  35.  
  36.  
  37.            Document doc = new Document(PageSize.LETTER, 10, 10, 10, 10);
  38.            string filename = "C:\\Temp\\Listado Total.pdf";
  39.            iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(@"C:\Mis documentos\Biblia_productos\Biblia_productos\Images\marion.JPG"); jpg.Alignment = iTextSharp.text.Image.ALIGN_LEFT;
  40.            Chunk encab = new Chunk(" LISTA DE PRODUCTOS CODIFICADOS EN " + fcha_ttal + "", FontFactory.GetFont("COURIER", 12));
  41.  
  42.  
  43.            try
  44.            {
  45.                FileStream file = new FileStream
  46.               (filename, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
  47.                PdfWriter.GetInstance(doc, file);
  48.                doc.Open();
  49.  
  50.  
  51.                doc.Add(new Paragraph(encab));
  52.                doc.Add(jpg);
  53.                GenerarDocumento(doc);
  54.  
  55.                Process.Start(filename);
  56.                doc.Close();
  57.            }
  58.  
  59.            catch (Exception ex)
  60.            {
  61.                MessageBox.Show(ex.Message);
  62.            }
  63.  
  64.        }
  65.  
  66.        //Función que genera el documento Pdf
  67.        public void GenerarDocumento(Document document)
  68.        {
  69.  
  70.  
  71.  
  72.            PdfPTable datatable = new PdfPTable(dataGridView1.ColumnCount);
  73.            datatable.DefaultCell.Padding = 1;
  74.            float[] headerwidths = GetTamañoColumnas(dataGridView1);
  75.  
  76.  
  77.            datatable.SetWidths(headerwidths);
  78.            datatable.WidthPercentage = 100;
  79.            datatable.DefaultCell.BorderWidth = 4; // Define el grosor del encabezado
  80.  
  81.            //datatable.DefaultCell.VerticalAlignment = Element.ALIGN_CENTER; // Alinea el encabezado al centro
  82.            //datatable.DefaultCell.Column =
  83.            datatable.DefaultCell.Padding = 3;     //Amplia el tamaño del encabezado
  84.  
  85.  
  86.  
  87.           iTextSharp.text.Font fuente = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.COURIER, 9);
  88.  
  89.           Phrase objP = new Phrase("A", fuente);
  90.  
  91.            for (int i = 0; i < dataGridView1.ColumnCount; i++)
  92.            {
  93.  
  94.                objP = new Phrase(dataGridView1.Columns[i].HeaderText, fuente);
  95.  
  96.                //this.dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
  97.                datatable.AddCell(objP);
  98.  
  99.  
  100.            }
  101.            datatable.HeaderRows = 1;
  102.            datatable.DefaultCell.BorderWidth = 1;
  103.  
  104.  
  105.            for (int i = 0; i < dataGridView1.RowCount - 1; i++)
  106.            {
  107.                for (int j = 0; j < dataGridView1.ColumnCount; j++)
  108.                {
  109.  
  110.                    objP = new Phrase(dataGridView1[j, i].Value.ToString(), fuente);
  111.                    datatable.AddCell(objP);
  112.                 }
  113.                datatable.CompleteRow();
  114.                }
  115.  
  116.            document.Add(datatable);
  117.  
  118.        }
  119.        public float[] GetTamañoColumnas(DataGridView dg)
  120.        {
  121.            float[] values = new float[dg.ColumnCount];
  122.            for (int i = 0; i < dg.ColumnCount; i++)
  123.            {
  124.                values[i] = (float)dg.Columns[i].Width;
  125.            }
  126.            return values;
  127.        }


En línea

Jorge MB
.::IT::.

Desconectado Desconectado

Mensajes: 167



Ver Perfil
Re: Paginar un pdf y alinear las columnas de un datagridview
« Respuesta #1 en: 17 Marzo 2011, 01:24 am »

joalbela pues la manera mas facil de hacer lo que dices es usando un reporteador como http://www.fyireporting.com/  que soporta exportacion a pdf lo e probado en estas semanas y la verdad esta muy bueno.


En línea

Simplemente .::IT::.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Paginar un pdf y alinear las columnas de un datagridview
« Respuesta #2 en: 17 Marzo 2011, 04:16 am »

Lo bueno sería que dejes de abrir un nuevo tema por cada opción de estilo que le quieres poner a tus pdf :¬¬

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines