Hi Everybody,
 
This is in continuation of my earlier mail. I thought I could not explain my problem properly. I want to put it down more simply. Please see the details in earlier mail attached below.
 
This is snippet from MainTask method. int count is a class-wide variable.
While OnEndPAge Event occurs in the loop where count is increasing, it is not able to identify the increase in the value of count. It is storing the initial value.
  for(count = 0; count < 2; count++){
    document.newPage();
   }
Thanks and Regards
Neil

Nilabhra Banerjee <[EMAIL PROTECTED]> wrote:
Hi Everybody,
 
I have just started learning iText. Could you please tell me what stupid thing I have done here? The OnEndPage method is not working as expected (though I haven't changed anything in it).
 
Problem,
A set of Customer data.
a) Every Customer data starts on new page.
b) All headers in pages related to a particular customer should show the Customer name.
 
Tweaked the code See the code pasted below.
 
Result
Header is showing the same value as the first customer. Currently I am printing the same data twice in a loop, and watching on the count value.
 
Anybody please help.
 
Thanks and Regards
Nilabhra banerjee
 
 
public class EndPage extends PdfPageEventHelper {
   
    // This count is the customer number . Used to loop.
    // and also in page header as count+1.
 int count = 0;
   
 public static void main(String[] args)
 {
  EndPage ep = new EndPage();
  ep.mainTask();  
 }
 
 public void onEndPage(PdfWriter writer, Document document) {
  try {
   
   Rectangle page = document.getPageSize();
   PdfPTable head = new PdfPTable(3);
   for (int k = 1; k <= 6; ++k)
   {
    head.addCell("head " + k +  " Cust No. = " + (count+1));
   }
   System.out.println(page.width());
   head.setTotalWidth(page.width() - document.leftMargin() - document.rightMargin());
   head.writeSelectedRows(0, -1, document.leftMargin(), page.height() - document.topMargin() + head.getTotalHeight(),
    writer.getDirectContent());
   PdfPTable foot = new PdfPTable(3);
   for (int k = 1; k <= 6; ++k)
    foot.addCell("foot " + k);
   foot.setTotalWidth(page.width() - document.leftMargin() - document.rightMargin());
   foot.writeSelectedRows(0, -1, document.leftMargin(), document.bottomMargin(),
    writer.getDirectContent());
  }
  catch (Exception e) {
   throw new ExceptionConverter(e);
  }
 }
 
/**
 * Main task is to reiterate through an arraylist.
 * Here, in absence of arraylist I am printing the same thing 3 times.
 *
 */
 private void mainTask()
 {
  try {
  Document document = new Document(PageSize.A4, 50, 50, 70, 70);
  PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("endpage.pdf"));
  writer.setPageEvent(new EndPage());
  document.open(); 
  
  // Currently considering I am going thru a ArrayList
  for(count = 0; count < 2; count++){
   if(count > 0){   
   writer.setPageEvent(new EndPage());
    document.newPage();
   }
   
   document = loopedTask(document, writer, count);
  }
   
  document.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 private Document loopedTask(Document document, PdfWriter writer, int i)
 {try {
  
  String text = "Lots of text of loop " + i + ".";
   
  PdfContentByte cB = writer.getDirectContent();
  //will have some other design here   
  cB.roundRectangle(Float.parseFloat("50"),document.top() - Float.parseFloat("71"),Float.parseFloat("500"),Float.parseFloat("70"),Float.parseFloat("11"));
  cB.stroke();
  PdfPTable ptable = new PdfPTable(2);
  ptable.setWidthPercentage(80); 
  ptable.getDefaultCell().setPaddingLeft(4);
  ptable.getDefaultCell().setPaddingTop(0);
  ptable.getDefaultCell().setPaddingBottom(4);
  ptable.getDefaultCell().setBorder(0);
  // get data ... now same for all, but i changes
  // i is nothing but count value.
  String pName   = "N. Banerjee(" + i + ")";
  String pRN   = "99900102";
  String pGender = "Male";
  String pAge  = "35y 11m";
  String pPhone = "(234)925924";
  String patient = "Patient Name:  " + pName + "\n" +"             RN :  " + pRN+ "\n" + "         Gender:  "
      + pGender + "\n" + "              Age:  " +pAge + "\n" + "           Phone:  " + pPhone ;
       
  String rProvider  = "N. Banerjee";
   String rId    = "000043238";   
  String provider  = "Requesting Provider:  " + rProvider + "\n" + "     Provider Id: " + rId;
   
  ptable.addCell(new Phrase(patient));
  ptable.addCell(new Phrase(provider));
  // Chunk ck = new Chunk(ptable);
  document.add(ptable);
  for (int k = 0; k < 10; ++k)
     text += text;
  document.add(new Paragraph(text));     
   
 }
 catch (Exception de) {
  de.printStackTrace();
 }
 return document;
 }
}
Send instant messages to your online friends http://uk.messenger.yahoo.com -------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Send instant messages to your online friends http://uk.messenger.yahoo.com

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Reply via email to