【问题标题】:iTextSharp: Need help to repeat some columns in the 1st row of the table after page breakiTextSharp:需要帮助以在分页后重复表格第一行中的某些列
【发布时间】:2011-08-17 15:47:24
【问题描述】:

我正在使用 iTextSharp 创建一个 PDF 文档。该文档是一堆表格。有些表格跨越几页。

第一列是日期。如果表格的几行在第一列中具有相同的日期,则只有我仅在第一行中输出日期,以下行有一个空白列-直到日期更改。

我通过将最后一列的值存储在一个变量中并在新行中添加一个单元格之前对其进行比较来做到这一点。

但是如果表格不适合一页,我想在分页符后的第一行重复日期列,这样用户就不必返回上一页来查看日期。

我的表格有一个标题,它在新页面上重复出现(我正在设置 PdfPTable.HeaderRows)。

我试图清除在 onStartPage 和 onEndPage 中存储上次打印日期的变量,但没有帮助。

基本上我想要这样的东西:

(表格开头)

==================================================== ===== 日期 与日期有关的东西 ==================================================== ===== 01/01/2011 1 月 1 日发生了一些事情 这一天还发生了其他事情 01/05/2011 这是另一天 01/07/2011 新的一天 仍然是 01/07/2011 还在那里

(分页后 - 表格继续,日期在第一行重复)

==================================================== ===== 日期 与日期有关的东西 ==================================================== ===== 01/07/2011 现在仍然是 1 月 7 日,但日期 列重复,因为这是一个新页面 还是第7个 01/15/2011 现在是新的一天 01/17/2011 又是一天

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 这实际上比看起来要困难得多。如果您正在回复PdfPCellEvent,那么单元格已经被写入,您无法真正撤消它。我能想到的最好方法是手动计算表格高度,根据表格在页面上的位置和页面大小确定表格将在哪里换行,并根据需要填写空白。
  • 谢谢你,克里斯。我可以试试这个。是否也可以在 PdfTableEvent 中执行此操作并将其“绘制”在空白单元格上?
  • 是的,你一定能做到。

标签: itextsharp pdfptable


【解决方案1】:

考虑在将列表添加到 PdfTable 之前先按日期对列表进行分组。这可以通过使用 LINQ 轻松实现。分组后,遍历每个组并在第一列中添加日期组值,然后遍历组中的每个成员并将它们全部(与日期相关的值)添加到第二列中。

【讨论】:

    猜你喜欢
    • 2014-03-02
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2021-08-02
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多