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;
}