iText,PageSize A4 - 单位

时间:2016-08-11 02:48:47

标签: java itext

我在iText中创建文档。我需要自定义宽度,但当它小于A4标准宽度时,应设置为A4标准宽度。

所以我得到了:

float pageWidth = columns.size() * 100;
if (pageWidth < PageSize.A4.getWidth()) {
       pageWidth = PageSize.A4.getWidth();
}
table.setTotalWidth(pageWidth);

它不起作用,可能是因为pageWidthPageSize.A4.getWidth()有不同的单位。 当我调试此内容时,我在900.0中获得pageWidth值,PageSize.A4.getWidth()返回595.0 那么我需要改变什么来获得相同的单位进行比较呢?

1 个答案:

答案 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完全无关的逻辑错误。