1

有什么方法可以找到当前页面将在 iTextSharp 中结束。例如,

假设有大约 10 条记录需要在我希望添加的第一页末尾写下两页“(在下页续页”)。有没有办法做到这一点。找到页尾会是这个问题的答案,还是有办法找到完成写作的行号,以便我可以进行计算以决定是否添加我选择的消息并继续下一页.

任何建议都非常感谢:)

万分感谢

4

2 回答 2

2

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

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

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

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

于 2013-03-04T04:51:12.087 回答
2

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

此示例向您展示如何创建带有页眉和页脚的表格。是 的链接SkipLastFooter

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

  1. PDF 文件中没有行号之类的东西。您有一个 MediaBox,并使用坐标在 MediaBox 定义的画布上绘制内容。
  2. 将对象添加到文档,有一种方法可以获取页面上的当前 Y 位置。您可以在添加表格之前和添加表格之后获取 Y 位置,但不能在您仍在创建表格时获取。

我上面建议的另一种解决方案是使用表格事件。

于 2013-03-03T09:56:11.570 回答