iText7中设置表格列宽问题

use*_*258 2 pdf itext7

当我想在 PDF 中创建表格时,我可以使用以下两种方法: 但是第一种方法失败了。

方法一:

float[] columnWidths = {20, 30, 50};
Table table = new Table(columnWidths);
Run Code Online (Sandbox Code Playgroud)

无法控制 columnWidths 方法 2:

UnitValue[] unitValue = new UnitValue[]{
UnitValue.createPercentValue((float) 20),
UnitValue.createPercentValue((float) 30),
UnitValue.createPercentValue((float) 50)};
Table table = new Table(columnWidths);
Run Code Online (Sandbox Code Playgroud)

这是成功! 为什么会发生这种情况?

Pav*_*lay 5

是的,正如 Vernon 所说,在 iText 7.0.2 中无法缩放列宽。

如果你想直接使用 20、30 和 50 点作为列,而不管最小宽度,你应该使用这个结构:

Table table = new Table(new float[] {20, 30, 50}) // in points
        .setWidth(100) //100 pt
        .setFixedLayout();
Run Code Online (Sandbox Code Playgroud)

如果您设置固定布局,则还必须设置宽度,固定布局需要它。