none
ItextSharp pageNumber RRS feed

  • Question

  • bonjour

    je viens de créer un fichier pdf avec itextSharp et tout vas bien, mais j'arrive pas a afficher Le Numero de la page il m'affiche seulement la page N°1 seulement !!

    voila le bout de code

     PdfPTable footerTbl = new PdfPTable(1);
                    footerTbl.TotalWidth = doc.PageSize.Width;
                    footerTbl.HorizontalAlignment = Element.ALIGN_CENTER;
                    //int j= doc.PageCount.GetType();
                    Chunk myFooter = new Chunk();
                  
                    int pageN = wri.PageNumber;
    
    
                    for (int i = 1; i <= pageN; i++)
                    {
                         myFooter = new Chunk("Page " + (i), FontFactory.GetFont(FontFactory.HELVETICA_OBLIQUE, 8, GrayColor.BLUE));
                       
    
                    }
                        PdfPCell footer = new PdfPCell(new Phrase(myFooter));
                        footer.Border = Rectangle.NO_BORDER;
                        footer.HorizontalAlignment = Element.ALIGN_CENTER;
                        footerTbl.AddCell(footer);
    si quelqu'un peut m'aider ?
    merci

    jeudi 6 septembre 2012 13:26

Réponses

  • Bonjour

    Je reviens avec un exemple plus complet :

    Ajoutez  dans votre solution une nouvelle classe (dans le même fichier ou dans un autre) :

      public class PageEventHelper : PdfPageEventHelper
            {
                PdfContentByte cb;
                PdfTemplate template;
    
    
                public override void OnOpenDocument(PdfWriter writer, Document document)
                {
                    cb = writer.DirectContent;
                    template = cb.CreateTemplate(50, 50);
                }
    
                public override void OnEndPage(PdfWriter writer, Document doc)
                {
    
                    BaseColor grey = new BaseColor(128, 128, 128);
                    iTextSharp.text.Font font = FontFactory.GetFont("Arial", 9, iTextSharp.text.Font.NORMAL, grey);
                    //tbl footer
                    PdfPTable footerTbl = new PdfPTable(1);
                    footerTbl.TotalWidth = doc.PageSize.Width;
    
    
    
                    //numero de la page
    
                    Chunk myFooter = new Chunk("Page " + (doc.PageNumber), FontFactory.GetFont(FontFactory.HELVETICA_OBLIQUE, 8, grey));
                    PdfPCell footer = new PdfPCell(new Phrase(myFooter));
                    footer.Border = iTextSharp.text.Rectangle.NO_BORDER;
                    footer.HorizontalAlignment = Element.ALIGN_CENTER;
                    footerTbl.AddCell(footer);
    
    
                    footerTbl.WriteSelectedRows(0, -1, 0, (doc.BottomMargin + 80), writer.DirectContent);
                }
    
    
    
    
                public override void OnCloseDocument(PdfWriter writer, Document document)
                {
                    base.OnCloseDocument(writer, document);
    
                  }
            }

     Et ajouter (

    en place de votre code ou vous essayez de ajouter le numéro de la page):

    wri.PageEvent = new  PageEventHelper();

    Cordialement,

    • Modifié Aurel Bera lundi 10 septembre 2012 12:57 Clarifier les choses
    • Marqué comme réponse leoni_007 lundi 10 septembre 2012 13:20
    lundi 10 septembre 2012 12:56

Toutes les réponses