A

AndrescamiloBuit

Usuario (Colombia)

Primer post: 25 jun 2014Último post: 25 jun 2014
1
Posts
10
Puntos totales
0
Comentarios
Exportar Datagridview A Pdf Desde C#
Exportar Datagridview A Pdf Desde C#
Hazlo Tu MismoporAnónimo6/25/2014

BUEN DÍA MUCHACHOS EN ESTE POST LES EXPLICARE COMO ENVIAR DATOS DE UN GRIDVIEW A UN PDF DESDE C#.. BN EMPECEMOS --YA SABEN QUE NECESITAREMOS EL Itextsharp.dll Y REFERENCIARLO EN EL PROYECTO-- UNA VEZ HECHO ESTO AÑADAN LAS SIGUIENTES REFERENCIAS: using iTextSharp.text; using iTextSharp.text.pdf; using System.Diagnostics; using System.IO; EN ESTE CASO YO UTILICE .. 1 GRIDVIEW .. 1 COMBOBOX .. 1 BOTON //DISCULPEN POR EL DESORDEN //BOTON private void btnpdf_Click(object sender, EventArgs e) { if (dtalumnos.RowCount == 0) { MessageBox.Show("No Hay Datos Para Realizar Un Reporte", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { //ESCOJE A RUTA DONDE GUARDAREMOS EL PDF SaveFileDialog save = new SaveFileDialog(); save.Filter = "PDF Files (*.pdf)|*.pdf|All Files (*.*)|*.*"; if (save.ShowDialog() == DialogResult.OK) { string filename = save.FileName; DateTime hora = DateTime.Now; string fcha_ttal = Convert.ToDateTime(hora).Day + "/" + Convert.ToDateTime(hora).Month + "/" + Convert.ToDateTime(hora).Year; Document doc = new Document(PageSize.A3, 9, 9, 9, 9); iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(@"C:UsersCAMILOMis Documentosvideos1.JPG"; jpg.Alignment = iTextSharp.text.Image.ALIGN_RIGHT; //iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(@"C:Userspc23DocumentsProfe6.JPG"; jpg.Alignment = iTextSharp.text.Image.ALIGN_RIGHT; Chunk encab = new Chunk("Alumnos De " + cmbcurso.Text + " ", FontFactory.GetFont("COURIER", 18)); Chunk ap = new Chunk("REPORTE " + fcha_ttal + " ", FontFactory.GetFont("COURIER", 18)); try { FileStream file = new FileStream(filename, FileMode.OpenOrCreate); PdfWriter writer = PdfWriter.GetInstance(doc, file); writer.ViewerPreferences = PdfWriter.PageModeUseThumbs; writer.ViewerPreferences = PdfWriter.PageLayoutOneColumn; doc.Open(); doc.Add(new Paragraph(encab)); doc.Add(new Paragraph(ap)); doc.Add(jpg); GenerarDocumentos(doc); Process.Start(filename); doc.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } //Función que genera el documento Pdf public void GenerarDocumentos(Document document) { //se crea un objeto PdfTable con el numero de columnas del dataGridView PdfPTable datatable = new PdfPTable(dtalumnos.ColumnCount); //asignamos algunas propiedades para el diseño del pdf datatable.DefaultCell.Padding = 1; float[] headerwidths = GetTamañoColumnas(dtalumnos); datatable.SetWidths(headerwidths); datatable.WidthPercentage = 100; datatable.DefaultCell.BorderWidth = 1; datatable.DefaultCell.BackgroundColor = iTextSharp.text.BaseColor.WHITE;//DEFINIMOS EL COLOR DE LAS CELDAS EN EL PDF datatable.DefaultCell.BorderColor = iTextSharp.text.BaseColor.BLACK;//DEFINIMOS EL COLOR DE LOS BORDES iTextSharp.text.Font fuente = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA);//LA FUENTE DE NUESTRO TEXTO Phrase objP = new Phrase("A", fuente); datatable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER; //SE GENERA EL ENCABEZADO DE LA TABLA EN EL PDF for (int i = 0; i < dtalumnos.ColumnCount; i++) { objP = new Phrase(dtalumnos.Columns.HeaderText, fuente); datatable.HorizontalAlignment = Element.ALIGN_CENTER; datatable.AddCell(objP); } datatable.HeaderRows = 2; datatable.DefaultCell.BorderWidth = 1; //SE GENERA EL CUERPO DEL PDF for (int i = 0; i < dtalumnos.RowCount; i++) { for (int j = 0; j < dtalumnos.ColumnCount; j++) { objP = new Phrase(dtalumnos[j, i].Value.ToString(), fuente); datatable.AddCell(objP); } datatable.CompleteRow(); } document.Add(datatable); } //Función que obtiene los tamaños de las columnas del datagridview public float[] GetTamañoColumnas(DataGridView dg) { float[] values = new float[dg.ColumnCount];//ESTE ARRAY GUARDA EL NUMERO DE COLUMNAS DEL GRIDVIEW for (int i = 0; i < dg.ColumnCount; i++) { values = (float)dg.Columns.Width;//VAYA ASIGNANDO A UNA POSICION DEL VECTOR EL ANCHO DE CADA COLUMNA } return values; } BN ESO FUE TODO ESPERO QUE LES HAYA SERVIDO ESTE POST YA SABEN QUE PUEDEN HACER MODIFICACIONES Y AJUSTARLO A SU AGRADO

10
0
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.