iTextPDF 5.5:为什么在使用 table.writeSelectedRows() 时创建了 2 次 table?

iTextPDF 5.5 : Why 2 times table created when used table.writeSelectedRows()?

我想在页眉后添加 table 页中间。 找到可用于移动页面上 table 位置的方法 'writeSelectedRows'。 但是使用这种方法,table 被创建了 2 次,一次在页面的开头,另一次在指定位置。

请帮忙解决这个问题。

//Using iTextPDF 5.5.10

        document.open();
        PdfPTable table = new PdfPTable(1);
//      table.setPaddingTop(250);
        table.setTotalWidth(100);
        table.setWidthPercentage(100);
        PdfPCell cell = new PdfPCell(new Phrase("Some text here"));
//        cell.setFixedHeight(13);
        cell.setBorder(Rectangle.NO_BORDER);
        cell.setColspan(1);
        cell.setBackgroundColor(BaseColor.CYAN);
        table.addCell(cell);

        table.writeSelectedRows(0, -1, 50, 650, writer.getDirectContent());
        document.add(table);
        document.open();

这会生成以下输出。

我只想在给定位置添加一次 table,而不是在页面开头。

table 在您的文档中出现两次,因为您添加了两次!首先将它添加到所需位置:

table.writeSelectedRows(0, -1, 50, 650, writer.getDirectContent());

然后将其添加为自动布局,将其放在页面顶部:

document.add(table);

如果您只需要一次,则只添加一次,即删除其中一行。