【问题标题】:iText 7 relative column width no longer working starting iText 7.0.2从 iText 7.0.2 开始,iText 7 相对列宽不再起作用
【发布时间】:2018-12-19 20:21:09
【问题描述】:

我在为 iText 7.0.4 中的表格设置相对列宽时遇到问题。我从这里尝试了布鲁诺的示例代码:https://stackoverflow.com/a/41428692/8804951。如果我使用 iText 7.0.1 执行示例,我会从 Bruno 的回答中得到准确的结果:

但对于更高版本,结果如​​下所示:

iText 网页上的原始示例似乎尚未反映这种行为变化。

【问题讨论】:

    标签: itext7


    【解决方案1】:

    如 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() 从浮点数组创建一个。
    【解决方案2】:

    这对我在 itext-7.1.3 中设置列​​宽很有用,你可以试试这个。

    Table content = new Table(UnitValue.createPercentArray(new float[]{3,5,10}));
    content.setWidth(UnitValue.createPercentValue(100));
    content.setFixedLayout();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      相关资源
      最近更新 更多