You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iText 8中实现表格单元格自动填充剩余高度?

解决iText 8表格剩余高度自动填充问题

要让左侧单元格占据所有可用高度,核心是让左侧嵌套表格所在的单元格占满当前行的全部高度,具体修改如下:

修改后的完整代码

package TabellaProva;

import java.io.FileNotFoundException;

import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.properties.UnitValue;
import com.itextpdf.layout.properties.VerticalAlignment;

public class NestedTable {
    private static final String DEST = "./prova.pdf";

    public static void main(String[] args) throws FileNotFoundException {
        PdfDocument pdf = new PdfDocument(new PdfWriter(DEST));
        Document document = new Document(pdf, PageSize.A4);

        float[] colWidths = { 1, 1 };
        Table externalTable = new Table(UnitValue.createPercentArray(colWidths));

        Table leftNestedTable = new Table(2);
        leftNestedTable.setAutoLayout();
        Table rightNestedTable = new Table(2);
        rightNestedTable.setAutoLayout();

        Paragraph lp = new Paragraph("ciaone");
        Cell lc = new Cell().add(lp);
        Cell lc2 = new Cell().add(lp);

        leftNestedTable.addCell(lc);
        leftNestedTable.addCell(lc2);

        Paragraph rp = new Paragraph("sono a destra sono a destrasono a destrasono a destrasono a destrasono a destra");
        rightNestedTable.addCell(rp);
        rightNestedTable.addCell(rp);

        // 关键修改:给左侧嵌套表格创建独立单元格,设置高度为100%并指定垂直对齐
        Cell leftContainerCell = new Cell();
        leftContainerCell.setHeight(UnitValue.createPercentValue(100));
        leftContainerCell.setVerticalAlignment(VerticalAlignment.TOP); // 按需调整对齐方式,比如TOP/CENTER/BOTTOM
        leftContainerCell.add(leftNestedTable);
        
        externalTable.addCell(leftContainerCell);
        externalTable.addCell(rightNestedTable);

        document.add(externalTable);
        document.close();

        System.out.println("Document generated");
    }
}

关键修改说明

  • 创建容器单元格:不再直接将左侧嵌套表格添加到外部表格,而是先创建一个Cell作为承载容器
  • 设置百分比高度:通过setHeight(UnitValue.createPercentValue(100))让该单元格占满当前行的全部高度(行高由右侧内容更高的单元格自动决定)
  • 垂直对齐控制:使用setVerticalAlignment可以调整左侧嵌套表格在容器内的位置,可根据需求选择顶部、居中或底部对齐

修改后,左侧单元格会自动匹配右侧单元格的高度,实现剩余高度的自动填充。

内容的提问来源于stack exchange,提问作者int_michele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:53:08