Java 计算iText 7中表格的宽度
我将iTextJava 计算iText 7中表格的宽度,java,html,itext7,Java,Html,Itext7,我将iText7与html2pdf2.1.2版本一起使用,并尝试将HTML文件转换为PDF 我使用HtmlConverter#convertToElements处理html文件。然后我想计算其中一个元素的宽度(特别是一个表) 我曾尝试实现定制的TagWorker类,但我只有在填充完表之后才能得到它 还尝试了convertToDocument和其他一些方法,但没有成功 有没有办法在运行时获得表宽度 提前感谢。坏消息:一般来说,在桌子被放置之前,不可能得到桌子的实际宽度。这在很大程度上取决于布局区域
7
与html2pdf
2.1.2
版本一起使用,并尝试将HTML文件转换为PDF
我使用HtmlConverter#convertToElements
处理html文件。然后我想计算其中一个元素的宽度(特别是一个表)
我曾尝试实现定制的TagWorker
类,但我只有在填充完表之后才能得到它
还尝试了convertToDocument
和其他一些方法,但没有成功
有没有办法在运行时获得表宽度
提前感谢。坏消息:一般来说,在桌子被放置之前,不可能得到桌子的实际宽度。这在很大程度上取决于布局区域 好消息是:可以模拟桌子的布局并检查占用的位置:
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();
在上面的代码中,我为表创建了一个渲染器(createRenderSubtree()
),设置了它的父级(setParent(doc.getRenderer())
-这一行对于正确的属性处理很重要)并对它进行了布局(LayoutContext(newlayoutArea(0,area)))
UPD:我已经阅读了你最初的问题,并为你提供了另一个解决方案。
假设您没有任何要放置的区域,但希望查看表可以占用多少空间
然后使用下一个代码段:
MinMaxWidth minMaxWidth = ((TableRenderer)table.createRendererSubTree().setParent(doc.getRenderer())).getMinMaxWidth();
float minWidth = minMaxWidth.getMinWidth();
float maxWidth = minMaxWidth.getMaxWidth();
在上面的代码中,我计算了表的最小宽度和最大宽度