好的,这里有一些代码(pdfDocument
是 a com.itextpdf.text.Document
):
PdfPTable table = new PdfPTable(1);
PdfPCell cell = new PdfPCell();
cell.setFixedHeight(3f);
for (int i = 1; i < 100; i++)
{
table.addCell(cell);
}
pdfDocument.add(table);
根据我的计算(像素 = 点 / 0.75f),3f 点在 96dpi 的屏幕上应该正好是 4 个像素(我的是)。然而,当我用上面的代码创建一个表格时,我得到了单元格的交替高度 4 - 3 - 4 - 3 - 4 - 3 等等......
为什么会这样?我会理解我输入的值是缩放到 x.6 像素的值,因此每隔一段时间就会出现一个比其他像素高一个像素的单元格。
例如。:
如果我将值减小到 2f,则大多数单元格的高度为 2 个像素,但每 10 到 15 个单元格的高度为 3 个像素。
如果我将值增加到 4f,所有单元格的高度将是 5 个像素,但每隔三个边框就会变厚一个像素。
此外,如果我确实使用 x.6 作为值,该值是否会四舍五入 (5.99 -> 6) 或取整 (5.99 -> 5) 为整数?
由于 iText 仅适用于点,我猜这是一个内部 PDF 的东西,。但我还是想知道。
我现在需要准确地确定一个单元格的浮点值有多高,这样我就可以准确地预测整个表格或对象的高度,然后我可以将其计算到整个页面的组成中。如果我不可靠地知道,我是不可能做到的。
有没有一种可靠的方法可以让我准确计算 pdf 版本的浮点值应该是 x 像素高?看来我使用的公式不起作用,或者可能还有其他东西?