using System; using System.Collections.Generic; using System.Linq; using System.Web; using iTextSharp.text; using iTextSharp.text.pdf; namespace Sleis.Pdf { public class PageEventHelper : PdfPageEventHelper { PdfContentByte cb; PdfTemplate template; private Font defaultFont = new iTextSharp.text.Font(ElementWriter.DEFAULT_FONT_FAMILY, 9); public override void OnOpenDocument(PdfWriter writer, Document document) { cb = writer.DirectContent; template = cb.CreateTemplate(50, 50); } public override void OnEndPage(PdfWriter writer, Document document) { base.OnEndPage(writer, document); int pageN = writer.PageNumber; String text = "Page " + pageN.ToString() + " of "; //float len = defaultFont.BaseFont.GetWidthPoint(text, defaultFont.Size); float len = defaultFont.GetCalculatedBaseFont(false).GetWidthPoint(text, defaultFont.Size); iTextSharp.text.Rectangle pageSize = document.PageSize; cb.SetRGBColorFill(100, 100, 100); cb.BeginText(); cb.SetFontAndSize(defaultFont.GetCalculatedBaseFont(false), defaultFont.Size); cb.SetTextMatrix(document.LeftMargin, pageSize.GetBottom(document.BottomMargin-10)); cb.ShowText(text); cb.EndText(); cb.AddTemplate(template, document.LeftMargin + len, pageSize.GetBottom(document.BottomMargin-10)); } public override void OnCloseDocument(PdfWriter writer, Document document) { base.OnCloseDocument(writer, document); template.BeginText(); template.SetFontAndSize(defaultFont.GetCalculatedBaseFont(false), defaultFont.Size); template.SetTextMatrix(0, 0); template.ShowText("" + (writer.PageNumber - 1)); template.EndText(); } } }