La exportada no tengo problemas ya la logre hacer, pero mi problema consiste con el encabezado. Investigando en google encontre que con la version del iTextSharp superior a la 5 se elimino el HeaderFooter y ahora se utiliza el PageEvent, en el cual se manda llamar a OnStarPage (Donde se pone la información que va en el encabezado ) OnEndPage ( Donde tenia entendido, va la información que va en el pie de pagina ). En el OnStarPage me funciona bien siempre y cuando ponga texto utilizando el Paragraph, pero si al documento le anexo un PdfPTable datatable, no me respeta el encabezado en la ultima hoja que contenga información, poniendome el encabezado en las ultimas lineas .
Este es mi codigo:
public class EventoTitulos : PdfPageEventHelper
{public override void OnStartPage(PdfWriter writer, Document document)}
{string sTitulo = "TITULO";}
document.Add(new Paragraph(sTitulo, font));
public override void OnEndPage(PdfWriter writer, Document document)
{string sPiePagina = "PIE DE PAGINA";}
document.Add(new Paragraph(sPiePagina.Trim(), font));
public static void Pdf(DataGridView Grid)//Función que genera el documento Pdf
{FileStream file = new FileStream(sAgotadoNorte, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);}
Document doc = new Document(PageSize.LEGAL.Rotate(), 10, 10, 10, 10);
PdfWriter pdfWriter = PdfWriter.GetInstance(doc, file);
EventoTitulos ev = new EventoTitulos();
pdfWriter.PageEvent = ev;
doc.Open();
GenerarDocumento(doc, Grid);
doc.Close();
public static void GenerarDocumento(Document document, DataGridView Grid)Actualmente estoy trabajando con la version 5.1.2.0, si alguien sabe a que le puedo mover para que me salga el encabezado bien en todas las hojas, le estaria muy agradecido y también con respecto al Pie de Pagina para que lo ponga al final de la hoja no despues del encabezado, por mientras seguire buscando haber que puedo encontrar
{string sTexto = "";//SE AGREGARA LA PDFPTABLE AL DOCUMENTO
//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 = Grid.ColumnCount;
float[] headerwidths = GetTamañoColumnas(Grid);
datatable.SetWidths(headerwidths);
datatable.WidthPercentage = 100;
datatable.DefaultCell.BorderWidth = 2;
datatable.HeaderRows = 0;
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++)}
{sTexto = Grid[j, i].Value.ToString();}
PdfPCell cell = new PdfPCell(new Phrase(sTexto,font));
cell.Border = 0;
cell.HorizontalAlignment = 0;
datatable.AddCell(cell);
datatable.CompleteRow();
document.Add(datatable);
}