如何在iText 7中设置和/或检索默认单元格填充

丹·金|

当使用Table和Cell类在iText 7中创建表格时,默认情况下,表格单元带有一些内置的填充。据我看生成的文档可以看出,它看起来大约是2个PDF单位。

有什么方法可以检索此值以供计算使用?另外,是否有任何方法可以更改此默认设置,以便可以将自己的填充设置为在所有表的所有单元格中使用,而不必在每个单元格上单独进行设置?

布鲁诺·洛瓦吉(Bruno Lowagie)

请查看iText 7:Building Blocks教程。

在“开始之前”部分中,我们看到每个构建基块都是从名为的类派生的ElementPropertyContainer此类是属性的容器。

对于Cell类,有一组定义填充的属性。您可以通过以下通用方式(使用AbstractElement的方法获取这些属性

System.out.println(cell.getProperty(Property.PADDING_LEFT));
System.out.println(cell.getProperty(Property.PADDING_RIGHT));
System.out.println(cell.getProperty(Property.PADDING_TOP));
System.out.println(cell.getProperty(Property.PADDING_BOTTOM));

但是,如果您还可以简单地使用BlockElement该类中提供的便捷方法,那么为什么会变得困难

System.out.println(cell.getPaddingLeft());
System.out.println(cell.getPaddingRight());
System.out.println(cell.getPaddingTop());
System.out.println(cell.getPaddingBottom());

如您在本教程中所看到的,Cell该类是该类的子BlockElement类。BlockElement是的子类AbstractElement类。AbstractElement班是一个子ElementPropertyContainer类。

如果要更改填充(或倾斜的边距),请阅读该教程的第5章它有一个名为CellMarginPadding的示例

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf);
    Table table = new Table(new float[]{2, 1, 1});
    table.setBackgroundColor(Color.ORANGE);
    table.setWidthPercent(80);
    table.setHorizontalAlignment(HorizontalAlignment.CENTER);
    table.addCell(
        new Cell(1, 3).add("Cell with colspan 3")
            .setPadding(10).setMargin(5).setBackgroundColor(Color.GREEN));
    table.addCell(new Cell(2, 1).add("Cell with rowspan 2")
        .setMarginTop(5).setMarginBottom(5).setPaddingLeft(30)
        .setFontColor(Color.WHITE).setBackgroundColor(Color.BLUE));
    table.addCell(new Cell().add("row 1; cell 1")
        .setFontColor(Color.WHITE).setBackgroundColor(Color.RED));
    table.addCell(new Cell().add("row 1; cell 2"));
    table.addCell(new Cell().add("row 2; cell 1").setMargin(10)
        .setFontColor(Color.WHITE).setBackgroundColor(Color.RED));
    table.addCell(new Cell().add("row 2; cell 2").setPadding(10)
        .setFontColor(Color.WHITE).setBackgroundColor(Color.RED));
    document.add(table);
    document.close();
}

看起来是这样的:

在此处输入图片说明

很抱歉,如果它有点伤眼睛,但是使用这些颜色似乎是向我解释边距和填充之间的区别的最佳方法。

大多数属性都是继承的。例如:如果您为设置了字体Div,则该字体将是添加到该字体的所有元素的默认字体Div虽然有一些例外。填充是其中之一。这是Cell定义类特定属性的默认值的方式

@Override
public <T1> T1 getDefaultProperty(int property) {
    switch (property) {
        case Property.BORDER:
            return (T1) (Object) DEFAULT_BORDER;
        case Property.PADDING_BOTTOM:
        case Property.PADDING_LEFT:
        case Property.PADDING_RIGHT:
        case Property.PADDING_TOP:
            return (T1) (Object) 2f;
        default:
            return super.<T1>getDefaultProperty(property);
    }
}

如您所见,整个单元格没有填充值。填充由默认情况下相同的四个值组成。

如果您不愿意为每个填充定义不同于默认的填充Cell,只需创建一个子类Cell并对其进行调用MyCustomCell从某种意义上说,使它自定义是通过覆盖getDefaultProperty()来使用您选择的填充

在本教程中,您将找到一个子类示例,该子类绘制带有圆角边界的单元格,这样我们就不必在每次要引入圆角时都设置声明渲染器。

我是该文档的原始作者。我希望您发现回答有关CelliText 7中和其他对象的这些和其他问题很有用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在iText Java中更改单元格颜色

来自分类Dev

如何从表格单元格中删除填充和边框?

来自分类Dev

如何在iText的一个单元格中添加两个图像?

来自分类Dev

如何在xamarin.forms中为输入单元格设置左右填充

来自分类Dev

iText 7如何在整个文档中设置字体

来自分类Dev

如何在LineSeparator itext中减小行距

来自分类Dev

如何在VBA中的单元格中填充颜色?

来自分类Dev

如何在VBA中的单元格中填充颜色?

来自分类Dev

如何在Excel 2010中添加单元格填充?

来自分类Dev

如何在 Excel 中填充特定颜色的单元格?

来自分类Dev

如何在Excel中的不同单元格中用增量值填充空白单元格?

来自分类Dev

如何在ios7的uitableview单元格中设置背景图像?

来自分类Dev

如何在QTableWidgetItem中设置单元格边框和背景色?

来自分类Dev

如何为所有类型的单元格设置默认单元格设置?

来自分类Dev

如何在Itext Fabric JS中删除默认文本

来自分类Dev

如何在iOS中设置tableView单元格标题?

来自分类Dev

Swift:如何在包含多个单元格的TableViewController中设置动态单元格高度

来自分类Dev

如何在itext7中获取widthPoint

来自分类Dev

如何从特定行和列python的单元格中检索值?

来自分类Dev

如何在列中合并随机数的单元格和空白单元格?

来自分类Dev

如何在 VBA 中修剪和清洁单元格

来自分类Dev

如何根据上方和下方的单元格在excel中自动填充值

来自分类Dev

如何在 iText7/iText7.pdfhtml 的行首修复 CJK 标点符号

来自分类Dev

如何在itext Pdf中增加PdfPTable的宽度

来自分类Dev

如何在iText中获取新页面

来自分类Dev

如何在ITEXT PDF Java中添加用于登录的行?

来自分类Dev

如何在iText中修改PdfAnnotations的大小并禁用某些选项

来自分类Dev

如何在fabricjs中从itext获取编辑的文本

来自分类Dev

PHPExcel如何应用样式并为动态生成的单元格设置单元格宽度和单元格高度

Related 相关文章

  1. 1

    如何在iText Java中更改单元格颜色

  2. 2

    如何从表格单元格中删除填充和边框?

  3. 3

    如何在iText的一个单元格中添加两个图像?

  4. 4

    如何在xamarin.forms中为输入单元格设置左右填充

  5. 5

    iText 7如何在整个文档中设置字体

  6. 6

    如何在LineSeparator itext中减小行距

  7. 7

    如何在VBA中的单元格中填充颜色?

  8. 8

    如何在VBA中的单元格中填充颜色?

  9. 9

    如何在Excel 2010中添加单元格填充?

  10. 10

    如何在 Excel 中填充特定颜色的单元格?

  11. 11

    如何在Excel中的不同单元格中用增量值填充空白单元格?

  12. 12

    如何在ios7的uitableview单元格中设置背景图像?

  13. 13

    如何在QTableWidgetItem中设置单元格边框和背景色?

  14. 14

    如何为所有类型的单元格设置默认单元格设置?

  15. 15

    如何在Itext Fabric JS中删除默认文本

  16. 16

    如何在iOS中设置tableView单元格标题?

  17. 17

    Swift:如何在包含多个单元格的TableViewController中设置动态单元格高度

  18. 18

    如何在itext7中获取widthPoint

  19. 19

    如何从特定行和列python的单元格中检索值?

  20. 20

    如何在列中合并随机数的单元格和空白单元格?

  21. 21

    如何在 VBA 中修剪和清洁单元格

  22. 22

    如何根据上方和下方的单元格在excel中自动填充值

  23. 23

    如何在 iText7/iText7.pdfhtml 的行首修复 CJK 标点符号

  24. 24

    如何在itext Pdf中增加PdfPTable的宽度

  25. 25

    如何在iText中获取新页面

  26. 26

    如何在ITEXT PDF Java中添加用于登录的行?

  27. 27

    如何在iText中修改PdfAnnotations的大小并禁用某些选项

  28. 28

    如何在fabricjs中从itext获取编辑的文本

  29. 29

    PHPExcel如何应用样式并为动态生成的单元格设置单元格宽度和单元格高度

热门标签

归档