0

我正在使用 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 又是一天

任何帮助将不胜感激。

谢谢

4

1 回答 1

0

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

于 2011-08-25T03:06:26.007 回答