InicioHazlo Tu MismoExportar Datagridview A Pdf Desde C#

Exportar Datagridview A Pdf Desde C#

Hazlo Tu Mismo6/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
Datos archivados del Taringa! original
10puntos
24visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

A
Usuario
Puntos0
Posts1
Ver perfil →
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.