iText,PageSize A4 - 单位
iText, PageSize A4 - units
我正在 iText 中创建文档。我需要自定义宽度,但是当它小于A4标准宽度时,应该设置为A4标准宽度。
所以我得到了:
float pageWidth = columns.size() * 100;
if (pageWidth < PageSize.A4.getWidth()) {
pageWidth = PageSize.A4.getWidth();
}
table.setTotalWidth(pageWidth);
它不起作用,可能是因为 pageWidth
和 PageSize.A4.getWidth()
的单位不同。
当我调试它时,我在 pageWidth
和 PageSize.A4.getWidth()
returns 595.0
中得到了 900.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 完全无关的逻辑错误。
我正在 iText 中创建文档。我需要自定义宽度,但是当它小于A4标准宽度时,应该设置为A4标准宽度。
所以我得到了:
float pageWidth = columns.size() * 100;
if (pageWidth < PageSize.A4.getWidth()) {
pageWidth = PageSize.A4.getWidth();
}
table.setTotalWidth(pageWidth);
它不起作用,可能是因为 pageWidth
和 PageSize.A4.getWidth()
的单位不同。
当我调试它时,我在 pageWidth
和 PageSize.A4.getWidth()
returns 595.0
中得到了 900.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 完全无关的逻辑错误。