iText 7 相对列宽从 iText 7.0.2 开始不再有效
iText 7 relative column width no longer working starting iText 7.0.2
我在为 iText 7.0.4 中的 table 设置相对列宽时遇到问题。我从这里尝试了 Bruno 的示例代码:。如果我使用 iText 7.0.1 执行示例,我会从 Bruno 的回答中得到准确的结果:
但对于更高版本,结果如下所示:
iText 网页上的原始示例似乎尚未反映这种行为变化。
table 布局算法在版本 7.0.2 中发生了变化,如 API 文档 (http://itextsupport.com/apidocs/itext7/latest/com/itextpdf/layout/element/Table.html#Table-float:A-boolean-) 中所述。最简单的解决方案是将值为 true
的第二个参数添加到 Table
:
的构造函数中
Table htable = new Table(new float[] {3, 8, 5, 10, 5, 10, 30}, true);
构造函数的单参数版本现在采用以磅为单位的绝对列宽。
这对我在 itext-7.1.3 中设置列宽有用。你可以试试这个。
Table content = new Table(UnitValue.createPercentArray(new float[]{3,5,10}));
content.setWidth(UnitValue.createPercentValue(100));
content.setFixedLayout();
我在为 iText 7.0.4 中的 table 设置相对列宽时遇到问题。我从这里尝试了 Bruno 的示例代码:
但对于更高版本,结果如下所示:
iText 网页上的原始示例似乎尚未反映这种行为变化。
table 布局算法在版本 7.0.2 中发生了变化,如 API 文档 (http://itextsupport.com/apidocs/itext7/latest/com/itextpdf/layout/element/Table.html#Table-float:A-boolean-) 中所述。最简单的解决方案是将值为 true
的第二个参数添加到 Table
:
Table htable = new Table(new float[] {3, 8, 5, 10, 5, 10, 30}, true);
构造函数的单参数版本现在采用以磅为单位的绝对列宽。
这对我在 itext-7.1.3 中设置列宽有用。你可以试试这个。
Table content = new Table(UnitValue.createPercentArray(new float[]{3,5,10}));
content.setWidth(UnitValue.createPercentValue(100));
content.setFixedLayout();