DynamicPDF表:有一种对行进行分组的方法吗?

时间:2019-02-05 18:24:02

标签: dynamicpdf

我们正在使用DynamicPDF编写一个表,但是我们希望对行进行“分组”,以便在分组的中间不会出现分页符。这些组从一到六行不等。有没有人找到一种方法来做到这一点?这是我们的代码:

// Create a PDF Document 
Document document = new Document();

Table2 table = new Table2(0, 0, 200, 700);

// Add columns to the table
table.Columns.Add(100);
table.Columns.Add(100);

// This loop populates the table 
for (int i = 1; i <= 400; i++)
{
   Row2 row = table.Rows.Add(20);
   row.Cells.Add("Row #" + i);
   row.Cells.Add("Item");
}

// This loop outputs the table to as many pages as is required
do
{
   Page page = new Page();
   document.Pages.Add(page);
   page.Elements.Add(table);
   table = table.GetOverflowRows();
} while (table != null);

1 个答案:

答案 0 :(得分:1)

没有直接执行此操作的属性或方法,但是您可以按照以下步骤实现:

  1. 使用Row2.ActualRowHeight属性获取每一行的高度(这是根据数据输出时的实际高度)。
  2. 一旦找到了要打破表的位置(在考虑了行组之后),请将Table2.Height属性设置为这些行的总和。
  3. 调用Table2.GetOverflowRows()以获取包含剩余行的溢出表。
  4. 请注意Table2.VisibleStartRow值是溢出表的起始行,并从#1开始重复,直到Table2.GetOverflowRows()返回null。

请记住,如果将Table2.RepeatRowHeaderCount属性设置为> 0,则需要在每个溢出表的计算中包含这些标头行(上面的#2)。

完全公开,我为DynamicPDF的制造商ceTe Software工作。