2016-09-20 85 views
0

我想在PDF文档的每个页面中添加页脚。我想要一个名字和当前日期。我正在使用此代码,但它只在最后一页打印。我在每一页都需要它。我在这里错过了什么?页脚在PDF与iTextSharp

DateTime horario = DateTime.MinValue; 
document.Add(new iText.Paragraph(document.BottomMargin, "TEST FOOTER" + horario)); 
+0

请显示更多的代码。 –

+0

如果您使用的是iText7,请查看http://developers.itextpdf.com/node/3259 –

+0

如果您使用的是iText5,则应该包含一些提示: http://developers.itextpdf.com/question/how-add-html-headers-and-footers-page –

回答

2

我设法解决这个问题。 在我创建pdf的课程中,我添加了这一行。

pdfWriter.PageEvent = new PDFFooter(); 

我创建了另一个名为PDFFooter的类。

public class PDFFooter : PdfPageEventHelper 
    { 
     // write on top of document 
     public override void OnOpenDocument(PdfWriter writer, Document document) 
     { 
      base.OnOpenDocument(writer, document); 
      PdfPTable tabFot = new PdfPTable(new float[] { 1F }); 
      tabFot.SpacingAfter = 10F; 
      PdfPCell cell; 
      tabFot.TotalWidth = 300F; 
      cell = new PdfPCell(new Phrase("")); 
      cell.Border = Rectangle.NO_BORDER; 
      tabFot.AddCell(cell); 
      tabFot.WriteSelectedRows(0, -1, 150, document.Top, writer.DirectContent); 
     } 

     // write on start of each page 
     public override void OnStartPage(PdfWriter writer, Document document) 
     { 
      base.OnStartPage(writer, document); 
     } 

     // write on end of each page 
     public override void OnEndPage(PdfWriter writer, Document document) 
     { 
      DateTime horario = DateTime.Now; 
      base.OnEndPage(writer, document); 
      PdfPTable tabFot = new PdfPTable(new float[] { 1F }); 
      PdfPCell cell; 
      tabFot.TotalWidth = 300F; 
      cell = new PdfPCell(new Phrase("TEST"+" - " + horario)); 
      cell.Border = Rectangle.NO_BORDER; 
      cell.HorizontalAlignment = Element.ALIGN_CENTER; 
      tabFot.AddCell(cell); 
      tabFot.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent); 
     } 

     //write on close of document 
     public override void OnCloseDocument(PdfWriter writer, Document document) 
     { 
      base.OnCloseDocument(writer, document); 
     } 
    } 
} 
+0

惊人的解决方案!感谢它的作品奇观 – Patrick