Если получить ширину ячейки легко, вы можете использовать табуляцию, чтобы заполнить остальную часть строки точками.Вот пример вспомогательного метода:
private Cell createCell(String content, float cellWidth) {
Cell cell = new Cell();
if (content != null) {
Paragraph p = new Paragraph(content);
p.addTabStops(new TabStop(cellWidth, TabAlignment.RIGHT, new DottedLine()));
p.add(new Tab());
cell.add(p);
}
return cell;
}
Он добавит табуляцию и необходимую вкладку, чтобы заполнить остальную часть последней строки точками.
Так что, если я использую этот метод, например,следующим образом:
Table table = new Table(new float[]{150, 50})
.addCell(createCell("cell 1, 1", 150))
.addCell(createCell("cell 1, 2", 50))
.addCell(createCell("cell 2, 1", 150))
.addCell(createCell("cell 2, 2", 50))
.addCell(createCell("cell 3, 1", 150))
.addCell(createCell(null, 50));
doc.add(table);
Результат будет выглядеть примерно так:
Конечно, вы можете решить,следует ли заполнять пустые ячейки точками, возможно, немного сдвинуть позицию табуляции влево и т. д., но это должно дать вам представление о подходе для достижения вашей цели.