我是Java / iText的新手,我无法合并Rowspan(3)。我究竟做错了什么?

这就是我要找的

java - 我究竟做错了什么?行距不会改变-LMLPHP

这就是我得到的。我正在尝试将行1、2和3合并为一行。

这是我目前的桌子

java - 我究竟做错了什么?行距不会改变-LMLPHP

      table1.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        table1.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);

        table1.addCell(new Phrase(" "));
        table1.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        PdfPCell cell = new PdfPCell(new Phrase("ACTUALS", fonti));
        cell.setColspan(9);
        cell.setBackgroundColor(BaseColor.BLACK);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table1.addCell(cell);
        table1.completeRow();

        table1.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
        table1.getDefaultCell().setRowspan(3);
        table1.addCell(new Phrase("1"));
        table1.addCell(new Phrase(" "));
        table1.addCell(new Phrase(" "));
        table1.addCell(new Phrase(" "));
        table1.addCell(new Phrase(" "));
        table1.addCell(new Phrase(" "));
        table1.addCell(new Phrase(" "));
        table1.addCell(new Phrase(" "));
        table1.addCell(new Phrase(" "));
        table1.completeRow();

最佳答案

根据您共享的图像,看起来好像您要更改单元格的高度。为此,您无需更改高度,但可以更改行距。那不是行跨度的目的。仅当相邻单元格仅跨一行时,希望特定单元格跨多行时,才应使用行跨度。

更改同一行中所有单元格的行距没有任何意义。一行中的所有单元格仅跨一行还是跨三行,对行的视觉表示没有任何影响。

如果要更改行的高度,则需要使用一种更改高度的方法。请参见How do setMinimumSize() and setFixedSize() interact?找出可以选择的两种方法。

如果典型行的高度为20个用户单位,请使用此高度使行高三次:

cell.setMinimumHeight(60);


您还可以使用:

cell.setFixedHeight(60);


但这比较危险,因为后一种方法可能会导致内容丢失。

09-12 09:58