iText 7表忽略我的表格边框设置

时间:2017-06-20 18:00:43

标签: java pdf itext

我想要一张没有边框的桌子。我试图设置边框属性,单独的边框属性,手动设置边框,将单元格边框设置为无边框等。无删除边框。有没有边框的iText 7表的正确方法是什么?

onErrorReturn()

这些设置似乎都不起作用。使用iText 7.0.2

1 个答案:

答案 0 :(得分:1)

首先,运行下一个代码段,看看iText7可以创建没有边框的表格。

    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outFileName));
    Document doc = new Document(pdfDoc);

    Table table = new Table(new float[] {50, 50 });

    Paragraph headerParagraph = new Paragraph();
    Text headerTitle = new Text("Title of PDF")
            .setFontSize(20)
            .setFontColor(new DeviceRgb(0, 128, 128));
    Text headerDescription = new Text("Description")
            .setFontSize(11);

    headerParagraph.add(headerTitle);
    headerParagraph.add(headerDescription);

    table.addCell(new Cell().add("logo").setBorder(Border.NO_BORDER));
    table.addCell(new Cell().add(headerParagraph).setBorder(Border.NO_BORDER).setTextAlignment(TextAlignment.RIGHT));

    doc.add(table);

这是负责这种"魔法" :

table.addCell(new Cell().add("logo").setBorder(Border.NO_BORDER));

但是根本没有魔法。 默认情况下,单元格在iText7中有边框(0.5px纯黑色)。因此,如果要添加没有边框的单元格,则应通过将NO_BORDER设置为单元格边框来指定它。

另一方面,表格默认没有边框(我的意思是边界边界)。因此,没有必要在这些方面:

table.setProperty(Property.BORDER_BOTTOM, Border.NO_BORDER);
    table.setProperty(Property.BORDER_LEFT, Border.NO_BORDER);
    table.setProperty(Property.BORDER_RIGHT, Border.NO_BORDER);
    table.setProperty(Property.BORDER_TOP, Border.NO_BORDER);
    table.setProperty(Property.BORDER, Border.NO_BORDER);
    table.setBorder(Border.NO_BORDER);

另外,您应该了解table.setBorder(border)代表table.setProperty(Property.BORDER, border)table.setBorderLeft(border)等同样