我正在iText中创建文档。我需要自定义宽度,但是当它小于A4标准宽度时,应将其设置为A4标准宽度。
所以我得到了:
float pageWidth = columns.size() * 100;
if (pageWidth < PageSize.A4.getWidth()) {
pageWidth = PageSize.A4.getWidth();
}
table.setTotalWidth(pageWidth);
而且它不起作用,可能是因为
pageWidth
和PageSize.A4.getWidth()
的单位不同。当我调试它时,我在
900.0
中得到了pageWidth
值,并且PageSize.A4.getWidth()
返回595.0
那么,我需要更改以获得相同的单位进行比较吗?
最佳答案
900不低于595,因此pageWidth<PageSize.A4.getWidth()
不正确,因此永远不会执行:pageWidth = PageSize.A4.getWidth();
pageWidth
的值永不变。您有9个专栏。您乘以100,得出900。900大于595,因此pageWidth
仍为900。
我认为您想要的是与您要求的相反的内容:
float pageWidth = columns.size()*100;
if(pageWidth > PageSize.A4.getWidth()){
pageWidth = PageSize.A4.getWidth();
}
table.setTotalWidth(pageWidth);
现在,当
pageWidth
不适合他的页面时,它将减少到595。我认为您犯了一个与iText完全无关的逻辑错误。