|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
itext column problemhi currently i am doing a system where i would have to generate a pdf file that would display list of worker pay .
however , upong reaching the 2nd page, the alignment went out of norms, could anyone help me in solving the problem? i am clueless and tried serveral ways to solve the alignments below are the codes part of the methods public void createDoc(ArrayList list){ try{ Font bold = new Font(); bold.setStyle(Font.BOLD); Font italic = new Font(); italic.setStyle(Font.ITALIC); Document doc=new Document(PageSize.A4.rotate()); String objleft[]=new String[2]; String objright[]=new String [2]; int x; PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream("payroll.pdf")); doc.open(); PdfContentByte cb = writer.getDirectContent(); cb.setRGBColorStroke(0xC0, 0xC0, 0xC0); MultiColumnText mct=null; mct = new MultiColumnText(); for(x=0;x<list.size();x++){ cb.moveTo(PageSize.A4.getHeight()/2,0); cb.lineTo(PageSize.A4.getHeight()/2, PageSize.A4.getWidth()); cb.stroke(); mct.addRegularColumns(doc.left(), doc.right(), 10f, 4); if(x<list.size()){ objleft=(String[]) list.get(x); String sql1="SELECT * FROM worker a,workerpay b WHERE a.workerID=b.workerID AND a.workerID='"+objleft[0].toString()+"' AND b.workerpayID='"+objleft[1].toString()+"'"; ResultSet rs1=payroll.data.DataConnection.read(sql1); mct.addRegularColumns(doc.left(), doc.right(), 10f, 4); mct.addElement(new Paragraph("Company")); mct.addElement(new Paragraph("Worker Name")); mct.addElement(new Paragraph("Worker IC")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("Pay Date")); mct.addElement(new Paragraph("Pay Period")); mct.addElement(new Paragraph("Total Hours")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("Basic Pay")); mct.addElement(new Paragraph("Bonus")); mct.addElement(new Paragraph("Additional Wages")); mct.addElement(new Paragraph("Subtotal",bold)); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("(CPF)",italic)); mct.addElement(new Paragraph("(Statutory)",italic)); mct.addElement(new Paragraph("Subtotal",bold)); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("Other Adjustments")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("Nett Total",bold)); doc.add(mct); mct.nextColumn(); while(rs1.next()){ //mct.addRegularColumns(doc.left(), doc.right(), 10f, 4); mct.addElement(new Paragraph(":"+rs1.getString("companyName"))); mct.addElement(new Paragraph(":"+rs1.getString("workerName"))); mct.addElement(new Paragraph(":"+rs1.getString("workerIC"))); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":"+rs1.getString("payDate").substring(0,10))); mct.addElement(new Paragraph(":"+rs1.getString("payPeriodStart").substring(0,10)+" - "+rs1.getString("payPeriodEnd").substring(0,10))); mct.addElement(new Paragraph(":"+rs1.getString("totalHour"))); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":"+rs1.getString("basicPay"))); mct.addElement(new Paragraph(":"+rs1.getString("bonus"))); mct.addElement(new Paragraph(":"+rs1.getString("additionalWage"))); mct.addElement(new Paragraph(":"+rs1.getString("subtotal1"),bold)); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":( "+rs1.getString("employeecpf")+" )",italic)); mct.addElement(new Paragraph(":( "+rs1.getString("Statutory")+" )",italic)); mct.addElement(new Paragraph(":"+rs1.getString("subtotal2"),bold)); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":"+rs1.getString("othAdj"))); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":"+rs1.getString("nettPay"),bold)); } rs1.close(); doc.add(mct); mct.nextColumn(); } x=x+1; if(x<list.size()){ objright=(String[]) list.get(x); String sql2="SELECT * FROM worker a,workerpay b WHERE a.workerID=b.workerID AND a.workerID='"+objright[0].toString()+"' AND b.workerpayID='"+objright[1].toString()+"'"; ResultSet rs2=payroll.data.DataConnection.read(sql2); mct.addElement(new Paragraph("Company")); mct.addElement(new Paragraph("Worker Name")); mct.addElement(new Paragraph("Worker IC")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("Pay Date")); mct.addElement(new Paragraph("Pay Period")); mct.addElement(new Paragraph("Total Hours")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("Basic Pay")); mct.addElement(new Paragraph("Bonus")); mct.addElement(new Paragraph("Additional Wages")); mct.addElement(new Paragraph("Subtotal",bold)); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("(CPF)",italic)); mct.addElement(new Paragraph("(Statutory)",italic)); mct.addElement(new Paragraph("Subtotal",bold)); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("Other Adjustments")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph("Nett Total",bold)); doc.add(mct); mct.nextColumn(); while(rs2.next()){ //mct.addRegularColumns(doc.left(), doc.right(), 10f, 4); mct.addElement(new Paragraph(":"+rs2.getString("companyName"))); mct.addElement(new Paragraph(":"+rs2.getString("workerName"))); mct.addElement(new Paragraph(":"+rs2.getString("workerIC"))); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":"+rs2.getString("payDate").substring(0,10))); mct.addElement(new Paragraph(":"+rs2.getString("payPeriodStart").substring(0,10)+" - "+rs2.getString("payPeriodEnd").substring(0,10))); mct.addElement(new Paragraph(":"+rs2.getString("totalHour"))); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":"+rs2.getString("basicPay"))); mct.addElement(new Paragraph(":"+rs2.getString("bonus"))); mct.addElement(new Paragraph(":"+rs2.getString("additionalWage"))); mct.addElement(new Paragraph(":"+rs2.getString("subtotal1"),bold)); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":( "+rs2.getString("employeecpf")+" )",italic)); mct.addElement(new Paragraph(":( "+rs2.getString("Statutory")+" )",italic)); mct.addElement(new Paragraph(":"+rs2.getString("subtotal2"),bold)); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":"+rs2.getString("othAdj"))); mct.addElement(new Paragraph(" ")); mct.addElement(new Paragraph(":"+rs2.getString("nettPay"),bold)); doc.add(mct); } rs2.close(); } writer.setPageEmpty(false); doc.newPage(); } as you can see, i would want to have 4 columns on a page where generation of 2 columns each when there is data in the database using a for loop to loop an arraylist where the arraylist store string array of the data however the problem left is the column alignment, what i get is payroll.pdf |
| Free Forum Powered by Nabble | Forum Help |