pdf - Itextsharp PdfDocument or PdfDocument from It.Document -


i adding page numbers bottom of pdf document using itextsharp thing is, made of 4 or 5 different pdf's combined through process, , there dynamically added pages pdf can vary in size. cannot call document.pagecount because "lacks accessor".

i made counter keep track of page on, , can final page "page 9 of 9" rest "page 7 of ". thinking run whole document through pdfreader call reader.numberofpages , rerun each page , add final number @ bottom not know how make 1 type itextsharp.text.document, nor how go afterwards.

this project started else, , i've barely touched itextsharp before, cannot remake class because huge.

does know can do? or how go adding 1 number each page of itextsharp.text.document?

found guys :d

so whenever make writer:

using (memorystream ms = new memorystream())         {             pdfwriter writer = pdfwriter.getinstance(doc, ms);             writer.viewerpreferences = pdfwriter.pagemodeuseoutlines;             pdffooter eventhandler = new pdffooter();             writer.pageevent = eventhandler;  ect. } 

for pdffooter:

using system; using system.collections.generic; using system.linq; using system.web; using itextsharp.text.pdf; using itextsharp.text;  public class pdffooter : pdfpageeventhelper {     // contentbyte object of writer     pdfcontentbyte cb;  // put final number of pages in template pdftemplate template;  // basefont going use header / footer basefont bf = null;  // keeps track of creation time datetime printtime = datetime.now;  #region properties private string _title; public string title {     { return _title; }     set { _title = value; } }  private string _headerleft; public string headerleft {     { return _headerleft; }     set { _headerleft = value; } }  private string _headerright; public string headerright {     { return _headerright; }     set { _headerright = value; } }  private font _headerfont; public font headerfont {     { return _headerfont; }     set { _headerfont = value; } }  private font _footerfont; public font footerfont {     { return _footerfont; }     set { _footerfont = value; } } #endregion  // override onopendocument method public override void onopendocument(pdfwriter writer, document document) {     try     {         printtime = datetime.now;         bf = basefont.createfont(basefont.helvetica, basefont.cp1252, basefont.not_embedded);         cb = writer.directcontent;         template = cb.createtemplate(50, 50);     }     catch (documentexception de)     {     }     catch (system.io.ioexception ioe)     {     } }  public override void onendpage(pdfwriter writer, document document) {     base.onendpage(writer, document);      int pagen = writer.pagenumber;     string text = "page " + pagen + " of ";     float len = bf.getwidthpoint(text, 8);      rectangle pagesize = document.pagesize;      cb.setrgbcolorfill(100, 100, 100);      cb.begintext();     cb.setfontandsize(bf, 8);     cb.settextmatrix(pagesize.getright(70), pagesize.getbottom(15));     cb.showtext(text);     cb.endtext();      cb.addtemplate(template, pagesize.getright(70) + len, pagesize.getbottom(15)); }  public override void onclosedocument(pdfwriter writer, document document) {     base.onclosedocument(writer, document);      template.begintext();     template.setfontandsize(bf, 8);     template.settextmatrix(0, 0);     template.showtext("" + (writer.pagenumber - 1));     template.endtext(); } 

}

hope helps in future :)


Comments

Popular posts from this blog

jquery - Invalid Assignment Left-Hand Side -

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -