Hi,
I am trying to generate a PDF Report using a database query.
I am checking to see if the table fits the page and if not delete the last
row inserted and start a new page (just like in the example Chap0513.java)
This is working fine as long as I do not do the following:
On the first page, I need to add some text above the table (about 3
paragraphs) which I am doing before the table gets printed on the first
page). If I do this, the table is getting messed up and I am unable to split
the table so that cells won't be spanned across multiple pages.
What should I do to fix the above??
Here is my Code:
import java.io.IOException;
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.pdf.*;
import java.sql.*;
public class Practice {
public static void main(String[]args)
{
Document doc = new Document(PageSize.A4.rotate());
HeaderFooter footer = new HeaderFooter(new Phrase("Page "),true);
footer.setAlignment(footer.ALIGN_RIGHT);
footer.setBorder(Rectangle.NO_BORDER);
Connection connection = null;
try{
PdfWriter writer = PdfWriter.getInstance(doc,new
FileOutputStream("Practice.pdf"));
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String queryString = "*****"; //masked out for security
connection = DriverManager.getConnection(*********);//masked out for
security
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(queryString);
doc.setFooter(footer);
doc.open();
initializePage(doc); //When I call this method and add a few paragraphs
above the table on the first page, the table gets messed up...
// If the above line is skipped then the table is split perfectly.
int ctr = 1;
Table aTable = getTable();
Cell c = null;
while(rs.next())
{
c = new Cell(rs.getString("*******"));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell(rs.getString("*******"));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell(rs.getString("*******"));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell(rs.getString("*******"));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell(rs.getString("*******"));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell(rs.getString("*******"));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
if(!(writer.fitsPage(aTable)))
{
aTable.deleteLastRow();
doc.add(aTable);
doc.newPage();
aTable = getTable();
}
}
doc.add(aTable);
doc.close();
connection.close();
}
catch(Exception ex)
{try{
connection.close();
ex.printStackTrace();
}
catch(Exception ex2){}
}
}
public static Table getTable() throws BadElementException,DocumentException
{
Table aTable = new Table(6);
aTable.setCellsFitPage(true);
aTable.setWidth(100);
int headerwidths[] = {26,14,22,15,15,8};
aTable.setWidths(headerwidths);
int spacing = 1-1;
aTable.setSpacing(spacing);
aTable.setPadding(3);
Cell c = new Cell("*******");
c.setBackgroundColor(new java.awt.Color(0xC0, 0xC0, 0xC0));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell("*******");
c.setBackgroundColor(new java.awt.Color(0xC0, 0xC0, 0xC0));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell("*******");
c.setBackgroundColor(new java.awt.Color(0xC0, 0xC0, 0xC0));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell("*******");
c.setBackgroundColor(new java.awt.Color(0xC0, 0xC0, 0xC0));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell("*******");
c.setBackgroundColor(new java.awt.Color(0xC0, 0xC0, 0xC0));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
c = new Cell("*******");
c.setBackgroundColor(new java.awt.Color(0xC0, 0xC0, 0xC0));
c.setHorizontalAlignment(c.ALIGN_CENTER);
aTable.addCell(c);
return aTable;
}
private static void initializePage(Document doc) throws
BadElementException,DocumentException
{
Paragraph p = new Paragraph(new Phrase("*******",new
Font(Font.TIMES_ROMAN,14,Font.BOLD|Font.UNDERLINE)));
p.setAlignment(p.ALIGN_CENTER);
doc.add(p);
p = new Paragraph(new Phrase("*******"));
doc.add(p);
p = new Paragraph(new Phrase("*******"));
doc.add(p);
p = new Paragraph(new Phrase("*******"));
doc.add(p);
}
}
Please Advise
Thanks
Dayal
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions