c# - Adding a Table into the Footer of a PDF -
after creating pdf html, need add footer each page. footer going single-row, three-column table, left cell being external reference id, center being "page x of y", , right being date stamp. have no experience itextsharp, after reading various posts created following pageeventhandler
updated code
public class footerevent : pdfpageeventhelper { pdfcontentbyte cb; #region properties private string _footerleft; public string footerleft { { return _footerleft; } set { _footerleft = value; } } private string _footercenter; public string footercenter { { return _footercenter; } set { _footercenter = value; } } private string _footerright; public string footerright { { return _footerright; } set { _footerright = value; } } private font _footerfont; public font footerfont { { return _footerfont; } set { _footerfont = value; } } #endregion public override void onendpage(pdfwriter writer, document document) { base.onendpage(writer, document); font font = new font(font.fontfamily.helvetica, 12, font.normal, basecolor.black); pdfptable footertable = new pdfptable(3); footertable.totalwidth = document.pagesize.width - document.leftmargin - document.rightmargin; pdfpcell footerleftcell = new pdfpcell(new phrase(2, footerleft, footerfont)); footerleftcell.horizontalalignment = element.align_left; footerleftcell.verticalalignment = element.align_center; footerleftcell.border = 0; footertable.addcell(footerleftcell); pdfpcell footercentercell = new pdfpcell(new phrase(2, footercenter, footerfont)); footercentercell.horizontalalignment = element.align_center; footercentercell.verticalalignment = element.align_center; footercentercell.border = 0; footertable.addcell(footercentercell); pdfpcell footerrightcell = new pdfpcell(new phrase(2, footerright, footerfont)); footerrightcell.horizontalalignment = element.align_right; footerrightcell.verticalalignment = element.align_center; footerrightcell.border = 0; footertable.addcell(footerrightcell); footertable.writeselectedrows(0, -1, document.leftmargin, document.bottommargin, cb); } }
added response
after editing pageevent, i'm still having issues. it's come mind i'm having issues calling pageevent , adding pdf (no experience itextsharp). below attempt add footer existing pdf has been passed byte[].
byte[] output = null; string identifier = id; string time = datetime.now.tostring(); string page = null; pdfreader reader = new pdfreader(original); int n = reader.numberofpages; try { using (memorystream ms = new memorystream()) { using (document doc = new document(pagesize.letter, 100, 100, 100, 100)) { using (pdfwriter writer = pdfwriter.getinstance(doc, ms)) { footerevent footer = new footerevent(); writer.pageevent = footer; footer.footerfont = fontfactory.getfont(basefont.helvetica, 12, basecolor.black); doc.open(); (int = 1; < n + 1; ++i) { doc.newpage(); page = "page " + + " of " + n; footer.footerleft = identifier; footer.footercenter = page; footer.footerright = time; doc.add(new paragraph(reader.getpagecontent(i).tostring())); //probably wrong. trying add contents each page in original pdf } doc.close(); } } output = ms.toarray(); } } catch (exception ex) { //some message added later } return output;
any appreciated. in advance.
try this, working me:
footertable.writeselectedrows(0, -1, document.leftmargin, footertable.totalheight, cb);
check post
Comments
Post a Comment