01/12/2011, 20:04
|
| | | Fecha de Ingreso: octubre-2008 Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 16 años, 2 meses Puntos: 58 | |
Respuesta: Problema con encabezados usando iTextSharp y C# Hola de nuevo, no fue nada facil pero por fin puede hacer lo del encabezado y pie de pagina. Pero no dire la respuesta .
Una pequeña broma . El modo para que les quede el encabezado y el pie de pagina es anexando lo siguiente: public class EventoTitulos : PdfPageEventHelper
{
protected PdfTemplate total;
protected BaseFont helv;
private bool settingFont = false; public override void OnOpenDocument(PdfWriter writer, Document document)
{// Se crea el template total = writer.DirectContent.CreateTemplate(100, 100);
total.BoundingBox = new Rectangle(-20, -20, 100, 100);
helv = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); } public override void OnStartPage(PdfWriter writer, Document document)
{ string sTitulo = "", sLinea = "";
float textSize = 6;
float textBase = 600; // Este pone la informacion en la parte superior
PdfContentByte cb = writer.DirectContent;
cb.SaveState();
cb.BeginText();
cb.SetFontAndSize(helv, 6);
sTitulo = "TITULO";
cb.SetTextMatrix(document.Left, textBase);
cb.ShowText(sTitulo);
cb.AddTemplate(total, document.Left + textSize, textBase);
textBase = textBase - 5;
sLinea = "------------------------------------";
cb.SetTextMatrix(document.Left, textBase - 5);
cb.ShowText(sLinea);
cb.EndText(); //Este es necesario para cerrar el BeginText, pero solo se pone en el ultimo texto a anexar, sino marcara error
cb.AddTemplate(total, document.Left + textSize, textBase);
cb.RestoreState(); } public override void OnEndPage(PdfWriter writer, Document document)
{ PdfContentByte cb = writer.DirectContent;
cb.SaveState();
cb.BeginText();
cb.SetFontAndSize(helv, 6);
string sPiePagina = "";
float textSize = 6;
float textBase = 15; // Este lo pone la informacion en la parte inferior
sPiePagina = "PIE DE PAGINA 1";
cb.SetTextMatrix(document.Left, textBase);
cb.ShowText(sPiePagina);
cb.AddTemplate(total, document.Left + textSize, textBase);
sPiePagina = "PIE DE PAGINA 2";
cb.SetTextMatrix(document.Left, textBase - 5);
cb.ShowText(sPiePagina);
cb.EndText();
cb.AddTemplate(total, document.Left + textSize, textBase);
cb.RestoreState(); } } Ya con esto solo ocupan anexar EventoTitulos ev = new EventoTitulos(); pdfWriter.PageEvent = ev; y con eso ya queda el encabezado y el pie de pagina listo. |