2016-09-20 88 views
0

PDFドキュメントのすべてのページにフッターを追加しようとしています。私は名前と現在の日付を持っていたい。私はこのコードを使用していますが、最後のページでのみ印刷しています。私はすべてのページでそれが必要です。私はここで何が欠けていますか?iTextSharpを使用したpdfのフッター

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

関連する問題