在 iText 7 中计算表格的宽度

7我使用带有版本的iTexthtml2pdf 2.1.2并尝试将 HTML 文件转换为 PDF。

HtmlConverter#convertToElements用来处理一个html文件。然后我想计算其中一个元素的宽度(特别是表格)。

我试图实现自定义TagWorker类,但我只有在填满后才得到表格。

还尝试convertToDocument了其他一些方法,但没有成功。

有没有办法在运行时获得表格宽度?

提前致谢。


缥缈止盈
浏览 227回答 1
1回答

慕桂英546537

坏消息:一般来说,在放置之前无法获得表格的实际宽度。这很大程度上取决于布局区域。好消息:可以模拟桌子的布局并检查占用的地方:    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();在上面的代码中,我计算了表格的最小和最大宽度。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java