【问题标题】:iTextSharp - finding end of pageiTextSharp - 查找页面结尾
【发布时间】:2013-03-03 06:02:11
【问题描述】:

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

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

任何建议都非常感谢:)

非常感谢

【问题讨论】:

    标签: itextsharp


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 谢谢布鲁诺!我会试试这个:)
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      • 2021-05-07
      相关资源
      最近更新 更多