iTextSharp - 查找页面末尾

时间:2013-03-03 06:02:12

标签: itextsharp

有没有办法找到当前页面将在iTextSharp中结束。例如,

说有大约10条记录需要在我希望添加的第一页末尾写下两页(在nex页面上打印)。有没有办法做到这一点。是否可以找到页面末尾的答案,或者是否有办法找到完成写入的行号,这样我就可以进行计算以决定是否添加我选择的消息并继续下一页

任何建议都非常感谢:)

非常感谢

2 个答案:

答案 0 :(得分:2)

通常,这是通过为表格定义页脚来完成的。当表自动中断时,iText将显示该页脚。当然:你不希望这个页脚显示在最后一页(在表的最后一行之后)。这就是为什么还有一种跳过最后一行的方法。

This example向您展示如何创建包含页眉和页脚的表格。 ThisSkipLastFooter的链接。

请注意,说“查找行号”可以解决您的问题,这有两个原因:

  1. PDF文件中没有行号。您有一个MediaBox,您可以使用坐标在MediaBox定义的画布上绘制内容。
  2. 在将对象添加到文档后,有一种方法可以在页面上获取当前的Y位置。您可以在添加表之前获取Y位置,在添加表之后获取,但在您仍在创建表时则不能。
  3. 我上面建议的替代解决方案,可能是使用表事件。

答案 1 :(得分:2)

如果您确实需要找到页面的末尾,并且没有使用将在每页末尾打印的页脚行的表格,则可以使用PdfWriter对象,如下所示:< / p>

var remainingPageSpace = pdfWriter.GetVerticalPosition(false) - pdfDocument.BottomMargin;

这将为您提供页面上的剩余空间,您可以从中确定下一步要做什么。

但是,如果您使用的是表格数据,则最好使用PdfPTable并利用页脚行功能。