我在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
那么我需要改变什么来获得相同的单位进行比较呢?
答案 0 :(得分:2)
900不低于595,因此pageWidth<PageSize.A4.getWidth()
不成立,并且永远不会执行:pageWidth = PageSize.A4.getWidth();
pageWidth
的值永远不会改变。你有9个colums。你乘以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完全无关的逻辑错误。