java - Split a PdfTable in next page -


how split pdftable in next page in java?

i generating pdf document using itext in java. pdf has header , table. when table continues next page, 2 rows of table overlaps header. how display remaining table rows below header in next page. here using header_footer java class , call object of header_footer in jsp page like-

header_footer event = new header_footer(); writer.setpageevent(event); 

my header_footer class give below

/*  * change template, choose tools | templates  * , open template in editor.  */ package mis4acjml; import java.io.fileoutputstream; import java.io.ioexception; import com.itextpdf.text.document; import com.itextpdf.text.documentexception; import com.itextpdf.text.element; import com.itextpdf.text.exceptionconverter; import com.itextpdf.text.image; import com.itextpdf.text.pagesize; import com.itextpdf.text.paragraph; import com.itextpdf.text.phrase; import com.itextpdf.text.rectangle; import com.itextpdf.text.pdf.columntext; import com.itextpdf.text.pdf.pdfpcell; import com.itextpdf.text.pdf.pdfptable; import com.itextpdf.text.pdf.pdfpageeventhelper; import com.itextpdf.text.pdf.pdftemplate; import com.itextpdf.text.pdf.pdfwriter; /**  *  * @author kanika  */ public class header_footer extends pdfpageeventhelper{     string header;     pdftemplate total;     /**          * allows change content of header.          * @param header new header string          */     public header_footer()     {         header="the assam co-operative jute mills ltd.";     }     public void setheader(string header) {         this.header = header;     }      /**          * creates pdftemplate hold total number of pages.          * @see com.itextpdf.text.pdf.pdfpageeventhelper#onopendocument(          *      com.itextpdf.text.pdf.pdfwriter, com.itextpdf.text.document)          */     public void onopendocument(pdfwriter writer, document document) {         total = writer.getdirectcontent().createtemplate(30, 16);     }      /**          * adds header every page          * @see com.itextpdf.text.pdf.pdfpageeventhelper#onendpage(          *      com.itextpdf.text.pdf.pdfwriter, com.itextpdf.text.document)          */     public void onendpage(pdfwriter writer, document document) {         pdfptable table = new pdfptable(3);         try {             table.setwidths(new int[]{24, 24, 2});             table.settotalwidth(527);             table.setlockedwidth(true);             table.getdefaultcell().setfixedheight(20);             table.getdefaultcell().setborder(rectangle.bottom);             table.addcell(header);              table.getdefaultcell().sethorizontalalignment(element.align_right);             table.addcell(string.format("page %d of", writer.getpagenumber()));             pdfpcell cell = new pdfpcell(image.getinstance(total));             cell.setborder(rectangle.bottom);             table.addcell(cell);              table.writeselectedrows(0, -1, 34, 803, writer.getdirectcontent());         } catch (documentexception de) {             throw new exceptionconverter(de);         }     }      /**      * fills out total number of pages before document closed.      *      * @see com.itextpdf.text.pdf.pdfpageeventhelper#onclosedocument(      * com.itextpdf.text.pdf.pdfwriter, com.itextpdf.text.document)      */     public void onclosedocument(pdfwriter writer, document document) {         columntext.showtextaligned(total, element.align_left,new phrase(string.valueof(writer.getpagenumber() - 1)),2, 2, 0);     } } `     

the problem needs solved in code you're not showing. you're adding header @ position x = 34, y = 803. assume you're creating document object this:

document document = new document(); 

this means you're creating document a4 pages , margins of 36 user units (half inch).

a4 means height of document 842. if substract margin, have y = 806 top margin. you're adding @ position 803, need larger top margin. see constructor of document class more info.

for instance:

document document = new document(pagesize.a4, 36, 36, 72, 36); 

Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -