如何在iText7中获得一张表格,其单元格均匀地分布在一页上?

时间:2019-07-31 18:36:25

标签: java itext7

所以我想做的是使一张桌子均匀地分布在一页(A4)上(这是指每个单元格都具有相同的宽度和高度,当然,该桌子正好适合一页)。虽然我发现宽度很容易做到,但我似乎还是不知道该怎么做。

我目前正在执行的操作(但显然不起作用)是将表格的高度设置为document.getEffectiveArea返回的矩形的高度,然后将每个单元格的高度设置为100 / rowNum,其中rowNum是行数:

float effectivePageHeight = document.getPageEffectiveArea(PageSize.A4).getHeight();
Table table = new Table(UnitValue.createPercentArray(puzzle.get(0).size())); // to make the cells have equal width
table.useAllAvailableWidth();
table.setHeight(effectivePageHeight);
UnitValue cellHeight = UnitValue.createPercentValue(100f/rowNum); // rowNum is the number of rows the table is going to have

// creation of cells
for (...) { 
    Cell cell = new Cell();
    cell.setHeight(cellHeight);
    // ...
    table.addCell(cell);
}

document.add(table);
document.close();

我希望在一张页面上创建一个表格,每个单元格的宽度和高度都与其他所有单元格相同。但是,这仅对某些单元格是正确的,总是至少缺少一行(取决于行的数量,也可能更多),并且最后打印的行的高度太大或小。

0 个答案:

没有答案