我将iText 7
与html2pdf
2.1.2
版本一起使用,并尝试将HTML文件转换为PDF。
我使用HtmlConverter#convertToElements
处理html文件。然后,我想计算其中一个元素(尤其是表格)的宽度。
我尝试实现自定义TagWorker
类,但是只有在表被填满后才能获得表。
也尝试了convertToDocument
和其他方法,但没有成功。
是否可以在运行时获取表格宽度?
谢谢。
答案 0 :(得分:0)
坏消息:一般来说,在放置桌子之前,不可能获得桌子的实际宽度。高度取决于布局区域。
好消息:人们可以模拟桌子的布局并检查占用的位置:
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())
-此行对于正确的属性处理很重要),并对其进行了布局({{ 1}};
UPD:我已经阅读了您的第一个问题,并为您提供了另一个解决方案。 假设您没有要放置的任何区域,但想查看表可以占用多少空间。
然后使用下一个代码段
layout(new LayoutContext(new LayoutArea(0, area)))
在上面的代码中,我计算了表格的最小和最大宽度。