0

我需要在 iText PDF 表格中添加图像,但单元格的位置(由图像组成)将取决于用户给出的索引(行号和列号)。如果没有给出任何图像的索引,则该表之间也可能有空单元格。

如何在随机位置在itext pdf中添加一个单元格?

我在各种论坛上寻找过这个,但没有成功。我真的很感激帮助。

4

1 回答 1

2

iText 的Table类中没有用于将单元格添加到任意位置的 API。做出这样决定的原因在于 iText 的Table架构:如果尚未构建表格(即不知道是否会有某些单元格的 rowpan 和/或 colpan 大于 1),iText 无法知道是否它可以在某个自定义位置放置一个单元格。

不过,好消息是所有布局相关的代码只有在表格添加到文档后才会触发。因此,始终可以执行以下操作:

  • 创建表
  • 用一些预先保存的空Cell对象填充它
  • 根据要求更改某些Cell对象
  • 将表格添加到文档

在上面的片段中,我将展示,在将单元格添加到表格后,将一些对角线内容添加到表格中。图像可以采用相同的方法。

        int numberOfRows = 3;
    int numberOfColumns = 3;
    Table table = new Table(numberOfColumns);
    List<List<Cell>> cells = new ArrayList<>();
    for (int i = 0; i < numberOfRows; i++) {
        List<Cell> row = new ArrayList<>();
        for (int j = 0; j < numberOfColumns; j++) {
            Cell cell = new Cell();
            row.add(cell);
            table.addCell(cell);

        }
        cells.add(row);
    }

    // Add some text diagonally
    cells.get(0).get(0).add(new Paragraph("Hello"));
    cells.get(1).get(1).add(new Paragraph("diagonal"));
    cells.get(2).get(2).add(new Paragraph("world!"));

生成的 PDF 如下所示: 在此处输入图像描述

于 2021-06-01T16:16:44.063 回答