为什么我的表中缺少内容?

时间:2015-11-20 08:41:58

标签: android pdf itext

这是我的方案:我创建了一个包含6列的PdfPTable。但是,当我只向表中添加1或2个单元格时,它不会渲染这些单元格。如果我添加6个或6个单元的倍数,它只会渲染单元格。

我知道这完全有道理但在我的情况下,我正在添加基于imagelist的图像单元格,可能不包含6或12或18个图像。图像的数量可以是1或7或任何其他。以下是我的代码:

try {
    Document document = new Document(PageSize.A4.rotate());
    PdfWriter writer = PdfWriter.getInstance(document,
        new FileOutputStream(new File(sourcePath, AppText.FILE_NAME)));
    PdfPTable table = new PdfPTable(6);
    document.open();
    Paragraph paragraph = new Paragraph("Diary Report");
    paragraph.setSpacingAfter(50);
    paragraph.setSpacingBefore(50);
    document.add(paragraph);
    table.setHorizontalAlignment(Element.ALIGN_LEFT);
    for (String imageFile : imageFiles) {
        Image image = Image.getInstance(new File(imageFile).getAbsolutePath());
        PdfPCell cell = new PdfPCell(image, true);
        cell.setPadding(10);
        table.addCell(cell);
    }
    document.add(table);
    document.close();
    return "successful";
} catch (DocumentException | IOException e) {
    e.printStackTrace();
}

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

据记载,iText会忽略每一行都不完整的行。当您定义一个包含6列的表并且只添加1(或2或3或4或5)单元格时,则不会呈现该行。

如果要避免此行为,则必须完成该行。这可以使用一行完成:

table.completeRow();

现在iText将添加空单元格以完成该行。