我一直试图将一个单元格水平拆分为两个单元格(1列2行)。另外,也可以在单元格中添加水平分隔符。它看起来应如下图所示。



如何使用Java中的iText 7来实现这一点?

最佳答案

如评论中已经提到的那样,构建这种表的更合适的方法是通过行跨度创建大型单元并自然地具有小型单元,而不是尝试通过单独分区大型单元来创建小型单元。

可以这样完成:

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

结果看起来像这样:

java - iText水平分隔单元格-LMLPHP



测试代码已通过iText 7.1.4-SNAPSHOT进行了测试。

关于java - iText水平分隔单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53449312/

10-12 00:24
查看更多