获取iText中的行位置

时间:2014-05-13 06:36:56

标签: java pdf-generation itext

我使用iText 5.1.0在java中创建PDF。我有3块表,其大小可能会动态变化

Table 1

.

.

. 

Table 2 

.

.

.

.

End of page 

现在我需要计算表2 下方空间的方法。我使用的页面大小为A4

最初是这样打印的,

但是当前面表格中的数据增加时,它就像第二张一样。 所以我想在插入表格之前计算下面的空格

非常感谢任何建议。

谢谢

1 个答案:

答案 0 :(得分:2)

PdfWriter中有一种称为getVerticalPosition()的方法。它需要一个布尔参数来告诉iText确保新行。如果您不确定新行(false),则会获得当前的Y,但这可能不是您需要的位置。如果您确保换行(true),则会添加一个新行,并获得新行开始的位置。

当您从头开始创建A4页面时,当Y轴指向上方时,您需要从此垂直位置减去底部边距,以找出新表格的剩余空间。

请注意,我们对iText的getVerticalPosition()方法不满意:使用 getter 更改文档内容并不是很优雅。在像您这样的情况下,我们更喜欢与ColumnText合作来负责布局过程,而不是让iText决定在哪里拆分表。