Código
OdbcDataAdapter dta =new OdbcDataAdapter (" SELECT a.cdgo_prdcto COD,a.nmbre_prdcto DESCRIPCION, SUM(b.cntdad)PMVTA,a.csto_rpscion CR, " + " a.clfccion_prmnnte P, a.clfccion_tmpral T,a.cdgo_brra EAN" + " from prdcto a , prmdio_vnta b " + " where estdo = 'A' " + " and a.cdgo_prdcto = b.cdgo_prdcto " + " group by 1,2,4,5,6,7 " + " order by 2 ", conn); dta.Fill(dsdatos, "Datos"); this.dataGridView1.DataMember = "Datos"; //this.dataGridView1.Columns(1).Width = 4400; this.dataGridView1.DataSource = dsdatos; } private void Form1_Load(object sender, EventArgs e) { } //private void dataGridView1_DefaultCellStyleChanged(object sender, EventArgs e) private void btnExportar_Click(object sender, EventArgs e) { DateTime hora = DateTime.Now; string fcha_ttal = Convert.ToDateTime(hora).Day + "/" + Convert.ToDateTime(hora).Month + "/" + Convert.ToDateTime(hora).Year; string filename = "C:\\Temp\\Listado Total.pdf"; 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; Chunk encab = new Chunk(" LISTA DE PRODUCTOS CODIFICADOS EN " + fcha_ttal + "", FontFactory.GetFont("COURIER", 12)); try { FileStream file = new FileStream (filename, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); PdfWriter.GetInstance(doc, file); doc.Open(); doc.Add(jpg); GenerarDocumento(doc); Process.Start(filename); doc.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } //Función que genera el documento Pdf public void GenerarDocumento(Document document) { datatable.DefaultCell.Padding = 1; float[] headerwidths = GetTamañoColumnas(dataGridView1); datatable.SetWidths(headerwidths); datatable.WidthPercentage = 100; datatable.DefaultCell.BorderWidth = 4; // Define el grosor del encabezado //datatable.DefaultCell.VerticalAlignment = Element.ALIGN_CENTER; // Alinea el encabezado al centro //datatable.DefaultCell.Column = datatable.DefaultCell.Padding = 3; //Amplia el tamaño del encabezado for (int i = 0; i < dataGridView1.ColumnCount; i++) { //this.dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter; datatable.AddCell(objP); } datatable.HeaderRows = 1; datatable.DefaultCell.BorderWidth = 1; for (int i = 0; i < dataGridView1.RowCount - 1; i++) { for (int j = 0; j < dataGridView1.ColumnCount; j++) { datatable.AddCell(objP); } datatable.CompleteRow(); } document.Add(datatable); } public float[] GetTamañoColumnas(DataGridView dg) { for (int i = 0; i < dg.ColumnCount; i++) { values[i] = (float)dg.Columns[i].Width; } return values; }