I am using MVC2, header and footer worked well with iTextSharp 4.1.6, however it didn’t with 5.2. Here is my code:
public FileStreamResult GridPDF()
{
MemoryStream workStream = new MemoryStream();
//the document
Document document = new Document();
PdfWriter.GetInstance(document, workStream);//fs);
document.Open();
iTextSharp.text.Font font5 = iTextSharp.text.FontFactory.GetFont("Arial", 10);
iTextSharp.text.Font font6 = iTextSharp.text.FontFactory.GetFont("Arial", 18);
//HeaderFooter header = new HeaderFooter(new Phrase(BPheader, FontFactory.GetFont("Arial", 8, Font.BOLD)), false);
//header.Border = Rectangle.BOTTOM_BORDER;
////header.GrayFill=(Color.GRAY);
//document.Header = header;
//HeaderFooter footer = new HeaderFooter(new Phrase("Page: ", FontFactory.GetFont("Arial", 8, Font.ITALIC)), true);
//footer.Border = Rectangle.TOP_BORDER;
//document.Footer = footer;
PdfPTable tableh = new PdfPTable(1);
PdfPCell cellh = new PdfPCell(new Phrase("", FontFactory.GetFont("Arial", 10)));
cellh.Colspan = 1;
tableh.HorizontalAlignment = 0;
tableh.WidthPercentage = 100;
cellh.BorderWidth = 3;
cellh.Padding = 0;
Image image = Image.GetInstance(Server.MapPath("~/Content/images/logo_small.png"));
// image.Alignment = 6; // iTextSharp.text.Image.ALIGN_RIGHT;
image.ScalePercent(40f); // change it's size
image.SetAbsolutePosition(500, 750);
document.Add(image);
Paragraph p = new Paragraph("Certificate", font6);
p.Alignment = 1;
document.Add(p);
tableh.DefaultCell.Border = Rectangle.TOP_BORDER;
tableh.DefaultCell.Border = Rectangle.BOTTOM_BORDER;
tableh.AddCell(cellh);
//close the document
document.Close();
//prepare output stream
byte[] byteInfo = workStream.ToArray();
SendPdfToBrowser(byteInfo);
r
eturn null;
}
Any suggestions!! Thanks in advance.
I think I know your issue, the HeaderFooter property in iTextSharp was removed in version 5+. This answer should help get you on your way. Basically, you will need to use the PageEvents class to add your header and footer.
Create a class that inherits from PdfPageEventHelper and implement its members. You only really need OnStartPage for your header and OnEndPage for your footer. During PDF creation, iTextSharp will fire each of those methods for every page in your PDF.
Additionally, here is a more thorough example (in C#).