使用iText将行添加到PDF表格中

我在这段代码中得到的是一个包含8列和3行的表。 我该怎么办才能获得2排? 并且3行中的第1列是空的,但剩余的单元格用“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"); } 

尝试这个:

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

编辑:

  // 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(); 

有关完整的示例代码和生成的PDF,请参阅SimpleTable :

在此处输入图像描述

正如您在屏幕截图中看到的那样,该表有8列和2行(如预期的那样)。

阅读原始问题,我看到第一列有一个带有colspan 2的单元格。考虑到这一点,这只是一个小小的改动:

 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"); } 

现在结果如下:

在此处输入图像描述

同样是8列和2行,但现在第一列中的单元格跨越两行。

您创建一个包含8列的表并总共添加了17个单元格。 这显然会导致创建三行。 也许你打算这样做:

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

亲爱的srinivasan您添加的代码将只打印一行7列,第一列将有rowspan2。 要打印8行,你需要8个列的表,并且对于变量’aw’的每个增量,在for循环中,一个单元格将被添加到表中,并且对于’aw’的每个8的每个倍数将创建新行。所以要获得8行尝试在代码中循环for循环:

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