为了账号安全,请及时绑定邮箱和手机立即绑定

在 iText 7 中计算表格的宽度

在 iText 7 中计算表格的宽度

缥缈止盈 2022-06-23 17:27:10
7我使用带有版本的iTexthtml2pdf 2.1.2并尝试将 HTML 文件转换为 PDF。我HtmlConverter#convertToElements用来处理一个html文件。然后我想计算其中一个元素的宽度(特别是表格)。我试图实现自定义TagWorker类,但我只有在填满后才得到表格。还尝试convertToDocument了其他一些方法,但没有成功。有没有办法在运行时获得表格宽度?提前致谢。
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

坏消息:一般来说,在放置之前无法获得表格的实际宽度。这很大程度上取决于布局区域。


好消息:可以模拟桌子的布局并检查占用的地方:


    Rectangle area = new Rectangle(0, 0, 500, 500);

    LayoutResult result = table.createRendererSubTree().setParent(doc.getRenderer()).layout(new LayoutContext(new LayoutArea(0, area)));

    Rectangle tableArea = result.getOccupiedArea().getBBox();

在上面的代码中,我为表创建了一个渲染器createRendererSubTree()(setParent(doc.getRenderer())layout(new LayoutContext(new LayoutArea(0, area)))


UPD:我已经阅读了您最初的问题,并为您提供了另一种解决方案。假设您没有任何区域可放置,但想看看桌子可以占用多少空间。


然后使用下一个片段:


MinMaxWidth minMaxWidth = ((TableRenderer)table.createRendererSubTree().setParent(doc.getRenderer())).getMinMaxWidth();

float minWidth = minMaxWidth.getMinWidth();

float maxWidth = minMaxWidth.getMaxWidth();

在上面的代码中,我计算了表格的最小和最大宽度。


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 226 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号