adding row to a table in PDF using iText

2019-03-05 02:25发布

问题:

What am I getting in this code is a table with 8 columns and 3 rows. What should I do to get just 2 rows? And the 1st column in the 3 rows are empty, but the remaining cells are filled with "hi".

        PdfPTable table = new PdfPTable(8);

        PdfPCell cell;

        cell = new PdfPCell();
        cell.setRowspan(2);
        table.addCell(cell);

        for(int aw=0;aw<8;aw++){
            table.addCell("hi");
        }

回答1:

Try this:

PdfPTable table = new PdfPTable(8);

    PdfPCell cell;
    for(int aw=0;aw<8;aw++)
    {
        cell = new PdfPCell(new Paragraph("hi"));
        table.addCell(cell );
    }

EDIT:

    // Step 1
    Document document = new Document();
    // step 2
    PdfWriter.getInstance(document, new FileOutputStream(filename));
    // step 3
    document.open();
    // step 4

PdfPTable table = new PdfPTable(8);
   for(int aw=0;aw<16 ; aw++){
        table.addCell("hi");
    }



    // Step 5
    document.add(table);
    // step 6
    document.close();

See SimpleTable for the full sample code and the resulting PDF:

As you can see in the screen shot, the table has 8 columns and 2 rows (as expected).

Reading the original question, I see that the first column has a cell with colspan 2. It's only a small change to take this into account:

PdfPTable table = new PdfPTable(8);
PdfPCell cell = new PdfPCell(new Phrase("hi"));
cell.setRowspan(2);
table.addCell(cell);
for(int aw = 0; aw < 14; aw++){
    table.addCell("hi");
}

Now the result looks like this:

Again 8 columns and two rows, but now the cell in the first column spans two rows.



回答2:

Your creating a table with 8 columns and adding 17 cells in total. This obviously results in three rows being created. Perhaps you meant to do this:

PdfPTable table = new PdfPTable(8);

for(int aw=0;aw<16;aw++){
    table.addCell("hi");
}


回答3:

dear srinivasan the code you added will print only one row with 7 columns and first column will have rowspan2. To print 8 rows ,you took table of 8 columns and in for loop for every increment of variable 'aw' one cell will be added to the table and for every multiple of 8 of 'aw' new row will be created.so to get 8 rows try folowwing for loop in code:

PdfPTable table = new PdfPTable(8);      
 for(int aw=0;aw<64;aw++)
 {
   table.addCell("hi");
 }


标签: java itext