Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/12/2011, 12:20
Avatar de drako_darpan
drako_darpan
 
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: GridView en itextsharp programando en vb

Lo que puedes hacer es vaciar la información a un grid o grilla y esa exportarla al PDF haciendo un barrido de la misma.

Yo uso C# y asi es como le hago:

pongo la información en el grid y luego la barro:

public static void GenerarDocumento(Document document, DataGridView Grid)
{
string sTexto = "";
//se crea un objeto PdfTable con el numero de columnas del dataGridView
PdfPTable datatable = new PdfPTable(Grid.ColumnCount);

//asignamos algunas propiedades para el diseño del pdf
datatable.DefaultCell.Padding = 3;

float[] headerwidths = GetTamañoColumnas(Grid);
datatable.SetWidths(headerwidths);
datatable.WidthPercentage = 100;
datatable.DefaultCell.BorderWidth = 2;
datatable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;

datatable.HeaderRows = 1;
datatable.DefaultCell.BorderWidth = 1;

//SE GENERA EL CUERPO DEL PDF
for (int i = 0; i <= Grid.RowCount - 1; i++)
{
for (int j = 0; j < Grid.ColumnCount; j++)
{
if (!string.IsNullOrEmpty((String)Grid[j, i].Value) )
{
sTexto = Grid[j, i].Value.ToString();
PdfPCell cell = new PdfPCell(new Phrase(sTexto,font));
cell.Border = 0;
cell.HorizontalAlignment = 1;
datatable.AddCell(cell);
}
else
{
PdfPCell cell = new PdfPCell(new Phrase(" "));
cell.Border = 0;
cell.HorizontalAlignment = 1;
datatable.AddCell(cell);
}
}
datatable.CompleteRow();
}

//SE AGREGARA LA PDFPTABLE AL DOCUMENTO
document.Add(datatable);
}

//Función que obtiene los tamaños de las columnas del grid
public static float[] GetTamañoColumnas(DataGridView dg)
{
float[] values = new float[dg.ColumnCount];

for (int i = 0; i < dg.ColumnCount; i++)
{
values[i] = (float)dg.Columns[i].Width;
}

return values;
}