IText 7:表格内容未显示

时间:2016-12-06 02:55:56

标签: java itext

我正在尝试使用Java中的IText 7创建一个pdf文档。但是,表格内容未显示在pdf中。

代码段:

private void addReceiptDetails(Document doc) {
        Table table = new Table(2, true);
        table.addCell(new Cell().add("C1"));
        table.addCell(new Cell().add("C2"));
        for (TaxTypeModel taxType : sale.getTaxModel().getTaxTypeModelList()) {
            table.addCell(new Cell().add("C9"));
            table.addCell(new Cell().add("C10"));
        }
        table.addCell(new Cell().add("C3"));
        table.addCell(new Cell().add("C4"));

        table.addCell(new Cell().add("C5"));
        table.addCell(new Cell().add("C6"));

        table.addCell(new Cell().add("C7"));
        table.addCell(new Cell().add("C8"));

        doc.add(table);
        table.complete();
        doc.close();
    }

PDF表格内容:

enter image description here

有人可以帮帮我。我不确定这里到底出了什么问题。

编辑:我尝试了here的代码示例:

Table table = new Table(8);
        for (int i = 0; i < 16; i++) {
            table.addCell("hi");
        }
        doc.add(table);

这也只是创建空单元格。

1 个答案:

答案 0 :(得分:0)

我无法重现您的问题。

我运行了明显更改的代码:

  • 我必须删除for循环,因为我在这里没有TaxTypeModel
  • 我必须为文档添加实例化代码。

即。像这样:

try (   OutputStream result = new FileOutputStream("simpleTableRahulDevMishra.pdf");
        PdfWriter writer = new PdfWriter(result);
        PdfDocument pdfDocument = new PdfDocument(writer);
        Document doc = new Document(pdfDocument)   )
{
    Table table = new Table(2, true);
    table.addCell(new Cell().add("C1"));
    table.addCell(new Cell().add("C2"));
    /*
    for (TaxTypeModel taxType : sale.getTaxModel().getTaxTypeModelList()) {
        table.addCell(new Cell().add("C9"));
        table.addCell(new Cell().add("C10"));
    }
    */
    table.addCell(new Cell().add("C3"));
    table.addCell(new Cell().add("C4"));

    table.addCell(new Cell().add("C5"));
    table.addCell(new Cell().add("C6"));

    table.addCell(new Cell().add("C7"));
    table.addCell(new Cell().add("C8"));

    doc.add(table);
    table.complete();
    doc.close();
}

结果在Adobe Reader中显示如下:

Screenshot

因此,问题的原因不在您提供的代码中。因此,请提供允许重现您的问题的代码。

尝试使用其他代码示例重现该问题

Table table = new Table(8);
for (int i = 0; i < 16; i++) {
    table.addCell("hi");
}
doc.add(table);

也导致细胞含量:

Screenshot