iText 7相对列宽不再起作用iText 7.0.2

iText 7相对列宽不再起作用iText 7.0.2

问题描述:

我在为iText 7.0.4中的表设置相对列宽时遇到问题。我从这里尝试了Bruno的示例代码:https://*.com/a/41428692/8804951。如果我的iText 7.0.1执行的例子,我从布鲁诺的回答得到完全相同的结果:iText 7相对列宽不再起作用iText 7.0.2

PDF created with iText 7.0.1

而且也为以后版本的结果是这样的:

PDF created with iText 7.0.2

最初的例子在iText网页上似乎没有反映出这种行为变化。

如API文档(http://itextsupport.com/apidocs/itext7/latest/com/itextpdf/layout/element/Table.html#Table-float:A-boolean-)中所述,版本7.0.2中的表布局算法已更改。最简单的解决方案是与值true添加第二个参数的Table构造:

Table htable = new Table(new float[] {3, 8, 5, 10, 5, 10, 30}, true); 

构造的单参数版本现在需要绝对列宽点。

+0

或者,传递包含百分比单位值的'UnitValue []'。你可以使用'UnitValue.createPercentArray()'从float数组创建一个。 –