【发布时间】:2018-12-19 20:21:09
【问题描述】:
我在为 iText 7.0.4 中的表格设置相对列宽时遇到问题。我从这里尝试了布鲁诺的示例代码:https://stackoverflow.com/a/41428692/8804951。如果我使用 iText 7.0.1 执行示例,我会从 Bruno 的回答中得到准确的结果:
但对于更高版本,结果如下所示:
iText 网页上的原始示例似乎尚未反映这种行为变化。
【问题讨论】:
标签: itext7
我在为 iText 7.0.4 中的表格设置相对列宽时遇到问题。我从这里尝试了布鲁诺的示例代码:https://stackoverflow.com/a/41428692/8804951。如果我使用 iText 7.0.1 执行示例,我会从 Bruno 的回答中得到准确的结果:
但对于更高版本,结果如下所示:
iText 网页上的原始示例似乎尚未反映这种行为变化。
【问题讨论】:
标签: itext7
如 API 文档 (http://itextsupport.com/apidocs/itext7/latest/com/itextpdf/layout/element/Table.html#Table-float:A-boolean-) 中所述,7.0.2 版中的表格布局算法已更改。最简单的解决方案是在Table的构造函数中添加第二个值为true的参数:
Table htable = new Table(new float[] {3, 8, 5, 10, 5, 10, 30}, true);
构造函数的单参数版本现在采用以磅为单位的绝对列宽。
【讨论】:
UnitValue[]。您可以使用 UnitValue.createPercentArray() 从浮点数组创建一个。
这对我在 itext-7.1.3 中设置列宽很有用,你可以试试这个。
Table content = new Table(UnitValue.createPercentArray(new float[]{3,5,10}));
content.setWidth(UnitValue.createPercentValue(100));
content.setFixedLayout();
【讨论】: