iText 水平分割单元格
iText divide cell horizontal
我一直在尝试将一个单元格水平拆分为两个单元格(1 列,2 行)。或者,也可以在单元格中添加水平分隔符。它应该如下图所示。
如何在 Java 中使用 iText 7 实现此功能?
正如评论中已经提到的,构建这样一个 table 更合适的方法是通过行跨度创建大单元格,自然地拥有小单元格,而不是尝试创建小单元格通过单独划分大型单元格。
可以这样做:
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测试过
我一直在尝试将一个单元格水平拆分为两个单元格(1 列,2 行)。或者,也可以在单元格中添加水平分隔符。它应该如下图所示。
如何在 Java 中使用 iText 7 实现此功能?
正如评论中已经提到的,构建这样一个 table 更合适的方法是通过行跨度创建大单元格,自然地拥有小单元格,而不是尝试创建小单元格通过单独划分大型单元格。
可以这样做:
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测试过