Hi All,
Let me give you brief desc
I am using two classes
1. PDFAllPDFGen which
generates pdf of all schedules(nearly 25 schedules) in
application
2. Sched1PDFgen which
generates individual pdf I,e for schedule1
In Sched1PDFgen I've method
public void writeSched1(PdfWriter
writer, Document document, HttpServletRequest request,HttpServletResponse
response)
which takes above params and is
used by both classes.
This method is invoked
from
public void
generate(HttpServletRequest request, HttpServletResponse response) throws
IOException,Exception of Sched1PDFgen which writes to
stream
In PDFAllPDFGen generate method I
am calling
Methods by instantiating each
class like
public void
generate(HttpServletRequest request, HttpServletResponse response)
{
//For
Sched1
Sched1PDFgen
sched1 = new Sched1PDFgen ();
sched1.
writeSched1(PdfWriter writer, Document document, HttpServletRequest
request,HttpServletResponse response);
document.newPage();
//For Sched2
Sched2PDFgen
sched1 = new Sched2PDFgen ();
Sched2.
writeSched2(PdfWriter writer, Document document, HttpServletRequest
request,HttpServletResponse response);
}
Now problem is in
Sched1
I am using PdfPTable in for
loop
PdfPTable
ancExp_body_Table = getAncExpHeaderTable();
for(int i=0 ;
i<anc_income.length ;i++ )
{
String acctNo =
anc_income[i].accountNumber.toString();
String expClass ="";
if(!anc_income[i].expenseClassification.trim().equals("null") &&
anc_income[i].expenseClassification != null)
expClass = anc_income[i].expenseClassification;
String amt = nf.format(anc_income[i].amount);
cell = new PdfPCell(new Paragraph(acctNo,normalFont));
ancExp_body_Table.addCell(cell);
cell = new PdfPCell(new Paragraph(expClass,normalFont));
ancExp_body_Table.addCell(cell);
cell = new PdfPCell(new Paragraph(amt,normalFont));
ancExp_body_Table.addCell(cell);
if
(!writer.fitsPage(ancExp_body_Table)) {
System.out.println("Inside 8 fitpage");
ancExp_body_Table.deleteLastRow();
i--;
if(ancExp_body_Table.size() >1)
{
ancExp_body_Table.writeSelectedRows(0, -1, document.left(),
document.top()-38, cb);
}
System.out.println("Before");
document.newPage();
System.out.println("After");
ancExp_body_Table = getAncExpHeaderTable();
//ancExp_header_Table.writeSelectedRows(0, -1, document.left(),
document.top()-20, cb);
}
}
}
ancExp_body_Table.writeSelectedRows(0,
-1, document.left(), document.top()-38, cb);
Now problem is when table doesn't
fit in writer it is checking for condition(marked in orange) and opening
a new page when method is called from Sched1PDfGen .But data is
truncated when method is called from PDFAllPDFGen writer is not
opening a new Page().
Can anyone please help me with this
issue?
Thanks,
Suneetha