【问题标题】:Removing Border from Table in iText7从 iText7 中的表格中删除边框
【发布时间】:2019-05-02 11:50:54
【问题描述】:

我想在 iText 7 中删除表格的整个边框。

7.0.8 之前,可以向单元格添加字符串 (source):

Cell cell = new Cell();
cell.add("contents go here");
cell.setBorder(Border.NO_BORDER);
table.addCell(cell);

但根据7.1.6,字符串不能再添加到单元格中,只能添加IBlockElementImage

这将是一种解决方法:

Cell cell;

cell = new Cell().add(new Paragraph("some text"));
cell.setBorder(Border.NO_BORDER);
table.addCell(cell);

cell = new Cell().add(new Paragraph("more text"));
cell.setBorder(Border.NO_BORDER);
table.addCell(cell);

// repeat x times

但如果你有很多细胞,这显然不是首选方式。


那么我现在如何去除表格的边框呢?

简单地做table.setBorder(Border.NO_BORDER)没有效果。

【问题讨论】:

    标签: java pdf itext itext7


    【解决方案1】:

    默认情况下,单元格在 iText7 中具有边框(0.5px 纯黑色)。所以如果你想添加一个没有边框的单元格,你应该通过将 NO_BORDER 设置为单元格边框来指定它。

    另一方面,表格默认没有边框,这就是table.setBorder(Border.NO_BORDER) 对生成的 pdf 没有影响的原因。

    所以我很害怕,但你应该使用cell.setBorder(Border.NO_BORDER); 方法。

    至于向单元格添加字符串:是的,现在应该添加一个段落。字符串参数化的方法被删除了,因为不清楚这个字符串应该如何包装在一个单元格中

    【讨论】:

    • 所以我应该为每个单元格指定它?难道没有更快、更有效的方法吗?
    • 我看到的一个选项是扩展 Cell 类并覆盖 getDefaultProperty 方法。你应该让它为 Property.BORDER 返回 null
    猜你喜欢
    • 2017-06-05
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 2018-04-29
    • 2015-03-13
    相关资源
    最近更新 更多