c# - How to maintain consistancy of Header being on page top throughout all Page Sizes? -
i have set page header (using itextsharp library) along margins set a4 page size (according orientation) -because have set document's page size a4 only- , works a4 page , shows on top. can tell me how make header consistant throughout page size whatever user selects? should print header on top of each , every predefined page size a4 because when select pagesize.halfletter, header gets vanished goes out of page boundaries. help?
updated question!
my code is:
using system; using system.collections.generic; using system.linq; using system.text; using itextsharp; using itextsharp.text; using itextsharp.text.pdf; using itextsharp.text.exceptions; using system.windows.forms; using system.io; namespace pdfgeneration { public class events : itextsharp.text.pdf.pdfpageeventhelper { private string header; private itextsharp.text.pdf.pdftemplate total; private pdfcontentbyte cb; private pdftemplate template; protected font footer { { //basefont bfarialunicode = basefont.createfont(@"fonts\\adobe-arabic-regular-1.ttf", basefont.identity_h, basefont.embedded); basecolor grey = new basecolor(128, 128, 128); font font = fontfactory.getfont("arial", 10.0f, font.normal, grey); //font font = new font(bfarialunicode, 10.0f, font.normal, grey); return font; } } protected font watermark { { basefont bfarialunicode = basefont.createfont(@"fonts\\adobe-arabic-regular-1.ttf", basefont.identity_h, basefont.embedded); basecolor grey = new basecolor(128, 128, 128); font font = new font(bfarialunicode, 14.0f, font.bolditalic, grey); return font; } } public override void onstartpage(itextsharp.text.pdf.pdfwriter writer, itextsharp.text.document document) { pdfptable headertbl = new pdfptable(1); headertbl.totalwidth = document.pagesize.width; //center table on page headertbl.horizontalalignment = element.align_justified; paragraph para = new paragraph(string.format("urdu word processor date : {0:dd/mmm/yyyy} page number : {1}", datetime.now, writer.pagenumber), footer); pdfpcell cell = new pdfpcell(para); cell.border = 0; cell.paddingleft = 120.0f; //cell.rundirection = pdfwriter.run_direction_rtl; //add cell table headertbl.addcell(cell); headertbl.writeselectedrows(0, -1, 0, (document.bottommargin + 790), writer.directcontent); } public override void onendpage(itextsharp.text.pdf.pdfwriter writer, itextsharp.text.document document) { //pdfcontentbyte cb = writer.directcontent; //pdfptable tablefooter = new pdfptable(1); ////tablefooter.headerrows = 3; //tablefooter.horizontalalignment = 1; //float[] widthfooter = new float[] { 1f }; //tablefooter.setwidths(widthfooter); //tablefooter.spacingbefore = 100f; //pdfpcell headerfooter = new pdfpcell(new phrase(string.format("urdu word processor date : {0:dd/mmm/yyyy} page number : {1}", datetime.now, writer.pagenumber), new itextsharp.text.font(itextsharp.text.font.fontfamily.helvetica, 12, itextsharp.text.font.normal, basecolor.black))); ////phrase headerfooter = new phrase(new phrase("urdu word processor " + "date: " + datetime.now.tostring("dd-mmm-yyyy-ss") + " " + "page: " + writer.pagenumber, new itextsharp.text.font(itextsharp.text.font.fontfamily.helvetica, 12, itextsharp.text.font.normal, basecolor.black))); //headerfooter.horizontalalignment = 0; //0=left, 1=centre, 2=right //headerfooter.border = itextsharp.text.rectangle.top_border; //tablefooter.addcell(headerfooter); ////document.add(tablefooter); //columntext ct = new columntext(cb); //ct.setsimplecolumn(new phrase(new chunk("بِسْمِ اللّٰهِ الرَّحْمٰنِ الرَّحِيْمِ ", fontfactory.getfont(fontfactory.helvetica, 18, font.normal))), // 46, 190, 530, 36, 25, element.align_left | element.align_top); //ct.go(); // water mark //columntext.showtextaligned(writer.directcontentunder,element.align_center, // new phrase("بِسْمِ اللّٰهِ الرَّحْمٰنِ الرَّحِيْمِ", watermark), // 297.5f, 421, ((writer.pagenumber % 2) == 1) ? 45 : -45); // have made loop have multiple orientations. columntext col = new columntext(writer.directcontentunder); col.rundirection = pdfwriter.run_direction_rtl; col.setsimplecolumn(220, 810, 569, 36); col.addelement(new paragraph("بِسْمِ اللّٰهِ الرَّحْمٰنِ الرَّحِيْمِ",watermark)); col.go(); } //public void setheader(string header) //{ // this.header = header; //} //public void onopendocument(itextsharp.text.pdf.pdfwriter writer, itextsharp.text.document document) //{ // total = writer.directcontent.createtemplate(30,16); //} //public void onendpage(itextsharp.text.pdf.pdfwriter writer, itextsharp.text.document document) //{ // itextsharp.text.pdf.pdfptable table = new pdfptable(1); // try // { // //table.setwidths(new int[]{24, 24, 2}); // table.settotalwidth(new float[] {527.0f,527.0f,527.0f}); // //table.lockedwidth = true; // table.defaultcell.fixedheight = 20; // table.defaultcell.border = itextsharp.text.rectangle.align_bottom; // table.addcell(header); // table.defaultcell.horizontalalignment = itextsharp.text.element.align_right; // table.addcell( string.format("page:{0} of", writer.pagenumber)); // // messagebox.show(string.format("page:{0} of", writer.pagenumber)); // itextsharp.text.pdf.pdfpcell cell = new itextsharp.text.pdf.pdfpcell(itextsharp.text.image.getinstance(total)); // cell.border = itextsharp.text.rectangle.align_bottom; // table.addcell(cell); // table.writeselectedrows(0, -1, // 34, 803, writer.directcontent); // } // catch(exception de) // { // // messagebox.show(de.message.tostring()); // } //} //public void onclosedocument(itextsharp.text.pdf.pdfwriter writer, itextsharp.text.document document) //{ // string pagenumber = (writer.pagenumber).tostring(); // pagenumber += " of " + (writer.pagenumber).tostring(); // itextsharp.text.pdf.columntext.showtextaligned(writer.directcontent, itextsharp.text.element.align_right, new itextsharp.text.phrase(pagenumber), 580, 10, -90); //} //override onpageend event handler add our footer //public override void onopendocument(pdfwriter writer, document document) //{ // cb = writer.directcontent; // template = cb.createtemplate(50, 50); //} //public override void onendpage(pdfwriter writer, document document) //{ // base.onendpage(writer, document); // int pagen = writer.pagenumber; // string text = "page " + pagen.tostring() + " of "; // //float len = this.rundatefont.basefont.getwidthpoint(text, this.rundatefont.size); // itextsharp.text.rectangle pagesize = document.pagesize; // cb.setrgbcolorfill(100, 100, 100); // cb.begintext(); // //cb.setfontandsize(this.rundatefont.basefont, this.rundatefont.size); // cb.settextmatrix(document.leftmargin, pagesize.getbottom(document.bottommargin)); // cb.showtext(text); // cb.endtext(); // cb.addtemplate(template, document.leftmargin + 10.0f, pagesize.getbottom(document.bottommargin)); //} //public override void onclosedocument(pdfwriter writer, document document) //{ // base.onclosedocument(writer, document); // basefont bfarialunicode = basefont.createfont(@"fonts\\adobe-arabic-regular-1.ttf", basefont.identity_h, basefont.embedded); // template.begintext(); // template.setfontandsize(bfarialunicode, 14.0f); // template.settextmatrix(0, 0); // template.showtext("" + (writer.pagenumber - 1)); // template.endtext(); //} }// end of class }
this code prints output onl @ top of a4 page size , should because hard coded values there inside code align text.
urdu word processor date: 17-02-2013 page number: 1
بِسْمِ اللّٰهِ الرَّحْمٰنِ الرَّحِيْمِ
how can oriented should same page sizes?
Comments
Post a Comment