Hello iText list! I experienced some severe problems regarding the Table class in itext-1.1 (and itext-paulo-143). As long as I create only one table in my pdf document, everything's fine.
But the more tables I add, the more additional space within table
cells is added that leads to cellcontent not centered within the
cells, but somewhere below the cells (see attached pdf).
I experienced with other fonts, but with no efforts.
Please have a look at the code below - am I doing something wrong?
Any help is greatfully appreciated.
Best regards,
Frank
----------8<----------8<----------8<----------8<----------8<-------
package de.isenergy.iTextTest;
import java.awt.Color;
import java.io.FileOutputStream;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import com.lowagie.text.Cell;
import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Rectangle;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
import de.isenergy.iTextTest.BootTest;
public class CreatePDFiTextError extends TestCase {
Document document = null;
PdfWriter writer = null;
BaseFont bfPoloR = null;
BaseFont bfPoloB = null;
public CreatePDFiTextError() {
super();
}
public CreatePDFiTextError(String arg0) {
super(arg0);
}
private void createTable() throws Exception {
Table table = null;
Cell cell = null;
Paragraph p = null;
table = new Table(3);
table.setBorder(Rectangle.NO_BORDER);
table.setWidth(45);
table.setWidths(new int[]{4,3,3});
table.setAlignment(Table.ALIGN_LEFT);
table.setPadding(1);
table.setSpacing(2);
Cell emptycell = new Cell();
emptycell.setBorder(Rectangle.NO_BORDER);
emptycell.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.setDefaultLayout(emptycell);
cell = new Cell(new Paragraph(8, "1st row", new Font(0, 8)));
table.addCell(cell);
cell = new Cell(new Paragraph(8, "tt.mm.jjjj", new Font(0, 8)));
cell.setBackgroundColor(new Color(210,210,210));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Paragraph(8, "hh:mm", new Font(0, 8)));
cell.setBackgroundColor(new Color(210,210,210));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
table.addCell(emptycell);
table.addCell(emptycell);
table.addCell(emptycell);
cell = new Cell(new Paragraph(8, "2nd row", new Font(0, 8)));
table.addCell(cell);
cell = new Cell(new Paragraph(8, "1st field", new Font(0, 8)));
cell.setBackgroundColor(new Color(210,210,210));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Paragraph(8, "2nd field", new Font(0, 8)));
cell.setBackgroundColor(new Color(210,210,210));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Paragraph(8, "3rd row", new Font(0, 8)));
table.addCell(cell);
cell = new Cell(new Paragraph(8, "tt.mm.jjjj", new Font(0, 8)));
cell.setBackgroundColor(new Color(210,210,210));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
table.addCell(emptycell);
cell = new Cell(new Paragraph(8, "4th row", new Font(0, 8)));
table.addCell(cell);
cell = new Cell(new Paragraph(8, "tt.mm.jjjj", new Font(0, 8)));
cell.setBackgroundColor(new Color(210,210,210));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Paragraph(8, "hh:mm", new Font(0, 8)));
cell.setBackgroundColor(new Color(210,210,210));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
cell = new Cell(new Paragraph(8, "ID", new Font(0, 8)));
table.addCell(cell);
cell = new Cell(new Paragraph(8, "ID field", new Font(0, 8)));
cell.setBackgroundColor(new Color(210,210,210));
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(cell);
table.addCell(emptycell);
document.add(table);
document.add(new Paragraph(0, " "));
}
public void testCreate() throws Exception {
Paragraph p = null;
document = new Document(PageSize.A4.rotate());
// bfArial = BaseFont.createFont("C:/windows/fonts/ARIAL.TTF",
BaseFont.CP1252, BaseFont.EMBEDDED);
writer = PdfWriter.getInstance(document, new
FileOutputStream("C:/filename.pdf"));
document.setMargins(40,40,15,15);
document.addTitle("iText Test");
document.addSubject("wrong alignment in table cells");
document.addCreator("Java");
document.addAuthor("Frank Mahler");
document.open();
p = new Paragraph("iText Test", new Font(bfPoloB, 24,
Font.NORMAL, new Color(255,0,0)));
document.add(p);
p = new Paragraph(12,"");
document.add(p);
createTable();
createTable();
createTable();
createTable();
createTable();
document.close();
}
public static void main(String[] args)
{
junit.swingui.TestRunner.run(BootTest.class);
}
public void testEnv() {
System.out.println(System.getProperties());
}
public static Test suite()
{
TestSuite suite = new TestSuite();
suite.addTest(new CreatePDFiTextError("testCreate"));
return suite;
}
}
--
Dr. Frank Mahler
is:energy GmbH
Solution Center Billing / Trading / CRM
Humboldtstr. 33
30169 Hannover
T +49 511 12178 - 497
F +49 511 12178 - 126
E mailto:[EMAIL PROTECTED]
W http://www.is-energy.de/
filename.pdf
Description: Adobe PDF document
