我一直试图将一个单元格水平拆分为两个单元格(1列2行)。另外,也可以在单元格中添加水平分隔符。如下图所示。
如何用Java中的iText 7来实现呢?
答案 0 :(得分:1)
正如在评论中已经提到的那样,构建这种表的更合适的方法是通过行跨度创建大型单元格并自然地具有小型单元格,而不是尝试通过单独划分大型单元格来创建小型单元格。
可以这样做:
try ( PdfWriter writer = new PdfWriter(RESULT_STREAM_OR_FILE);
PdfDocument pdfDocument = new PdfDocument(writer);
Document doc = new Document(pdfDocument) )
{
Table table = new Table(new float[] {30, 30, 30, 30, 30, 30, 30, 30, 30});
for (int i = 0; i < 4; i++) {
table.addCell(new Cell(2, 1).add(new Paragraph("Text")));
table.addCell(new Cell(2, 1).add(new Paragraph("Text")));
table.addCell(new Cell().setHeight(15));
table.addCell(new Cell(2, 1).add(new Paragraph("Text")));
table.addCell(new Cell().setHeight(15));
table.addCell(new Cell(2, 1).add(new Paragraph("Text")));
table.addCell(new Cell().setHeight(15));
table.addCell(new Cell(2, 1).add(new Paragraph("Text")));
table.addCell(new Cell().setHeight(15));
table.addCell(new Cell().setHeight(15));
table.addCell(new Cell().setHeight(15));
table.addCell(new Cell().setHeight(15));
table.addCell(new Cell().setHeight(15));
}
doc.add(table);
doc.close();
}
(CreateTable测试testCreateTableForDennis
)
结果如下:
测试代码已通过iText 7.1.4-SNAPSHOT进行了测试。